summaryrefslogtreecommitdiff
path: root/test/example
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-08-07 10:38:34 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-09-07 09:54:51 -0700
commit9d27d6818f83308c4853e3d8870d5b88a374453f (patch)
tree50c25e5177efb7a8e910e586398aab3cfd1522c7 /test/example
parent0783d60d9490666ab4b365e738b0132b378c6018 (diff)
downloadbinaryen-9d27d6818f83308c4853e3d8870d5b88a374453f.tar.gz
binaryen-9d27d6818f83308c4853e3d8870d5b88a374453f.tar.bz2
binaryen-9d27d6818f83308c4853e3d8870d5b88a374453f.zip
add drop and tee expressions
Diffstat (limited to 'test/example')
-rw-r--r--test/example/c-api-kitchen-sink.c43
-rw-r--r--test/example/c-api-kitchen-sink.txt2259
-rw-r--r--test/example/c-api-kitchen-sink.txt.txt879
-rw-r--r--test/example/relooper-fuzz.c6
-rw-r--r--test/example/relooper-fuzz.txt10
-rw-r--r--test/example/relooper-fuzz1.c6
-rw-r--r--test/example/relooper-fuzz1.txt10
7 files changed, 1919 insertions, 1294 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 0aaf5ab95..d22a30e9c 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -64,6 +64,10 @@ BinaryenExpressionRef makeSomething(BinaryenModuleRef module) {
return makeInt32(module, 1337);
}
+BinaryenExpressionRef makeDroppedInt32(BinaryenModuleRef module, int x) {
+ return BinaryenDrop(module, BinaryenConst(module, BinaryenLiteralInt32(x)));
+}
+
// tests
void test_types() {
@@ -202,14 +206,15 @@ void test_core() {
BinaryenUnary(module, BinaryenEqZInt32(), // check the output type of the call node
BinaryenCallIndirect(module, makeInt32(module, 2449), callOperands4, 4, "iiIfF")
),
- BinaryenGetLocal(module, 0, BinaryenInt32()),
+ BinaryenDrop(module, BinaryenGetLocal(module, 0, BinaryenInt32())),
BinaryenSetLocal(module, 0, makeInt32(module, 101)),
+ BinaryenDrop(module, BinaryenTeeLocal(module, 0, makeInt32(module, 102))),
BinaryenLoad(module, 4, 0, 0, 0, BinaryenInt32(), makeInt32(module, 1)),
BinaryenLoad(module, 1, 1, 2, 4, BinaryenInt64(), makeInt32(module, 8)),
BinaryenLoad(module, 4, 0, 0, 0, BinaryenFloat32(), makeInt32(module, 2)),
BinaryenLoad(module, 8, 0, 2, 8, BinaryenFloat64(), makeInt32(module, 9)),
- BinaryenStore(module, 4, 0, 0, temp13, temp14),
- BinaryenStore(module, 8, 2, 4, temp15, temp16),
+ BinaryenStore(module, 4, 0, 0, temp13, temp14, BinaryenInt32()),
+ BinaryenStore(module, 8, 2, 4, temp15, temp16, BinaryenInt64()),
BinaryenSelect(module, temp10, temp11, temp12),
BinaryenReturn(module, makeInt32(module, 1337)),
// TODO: Host
@@ -221,7 +226,8 @@ void test_core() {
// Make the main body of the function. and one block with a return value, one without
BinaryenExpressionRef value = BinaryenBlock(module, "the-value", valueList, sizeof(valueList) / sizeof(BinaryenExpressionRef));
- BinaryenExpressionRef nothing = BinaryenBlock(module, "the-nothing", &value, 1);
+ BinaryenExpressionRef droppedValue = BinaryenDrop(module, value);
+ BinaryenExpressionRef nothing = BinaryenBlock(module, "the-nothing", &droppedValue, 1);
BinaryenExpressionRef bodyList[] = { nothing, makeInt32(module, 42) };
BinaryenExpressionRef body = BinaryenBlock(module, "the-body", bodyList, 2);
@@ -260,6 +266,9 @@ void test_core() {
BinaryenFunctionTypeRef noname = BinaryenAddFunctionType(module, NULL, BinaryenNone(), NULL, 0);
+ // A bunch of our code needs drop(), auto-add it
+ BinaryenModuleAutoDrop(module);
+
// Verify it validates
assert(BinaryenModuleValidate(module));
@@ -304,7 +313,7 @@ void test_relooper() {
RelooperRef relooper = RelooperCreate();
RelooperBlockRef block0 = RelooperAddBlock(relooper, makeCallCheck(module, 0));
RelooperBlockRef block1 = RelooperAddBlock(relooper, makeCallCheck(module, 1));
- RelooperAddBranch(block0, block1, NULL, makeInt32(module, 77)); // code on branch
+ RelooperAddBranch(block0, block1, NULL, makeDroppedInt32(module, 77)); // code on branch
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "two-blocks-plus-code", v, localTypes, 1, body);
}
@@ -321,8 +330,8 @@ void test_relooper() {
RelooperRef relooper = RelooperCreate();
RelooperBlockRef block0 = RelooperAddBlock(relooper, makeCallCheck(module, 0));
RelooperBlockRef block1 = RelooperAddBlock(relooper, makeCallCheck(module, 1));
- RelooperAddBranch(block0, block1, NULL, makeInt32(module, 33));
- RelooperAddBranch(block1, block0, NULL, makeInt32(module, -66));
+ RelooperAddBranch(block0, block1, NULL, makeDroppedInt32(module, 33));
+ RelooperAddBranch(block1, block0, NULL, makeDroppedInt32(module, -66));
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "loop-plus-code", v, localTypes, 1, body);
}
@@ -341,9 +350,9 @@ void test_relooper() {
RelooperBlockRef block0 = RelooperAddBlock(relooper, makeCallCheck(module, 0));
RelooperBlockRef block1 = RelooperAddBlock(relooper, makeCallCheck(module, 1));
RelooperBlockRef block2 = RelooperAddBlock(relooper, makeCallCheck(module, 2));
- BinaryenExpressionRef temp = makeInt32(module, 10);
+ BinaryenExpressionRef temp = makeDroppedInt32(module, 10);
RelooperAddBranch(block0, block1, makeInt32(module, 55), temp);
- RelooperAddBranch(block0, block2, NULL, makeInt32(module, 20));
+ RelooperAddBranch(block0, block2, NULL, makeDroppedInt32(module, 20));
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "split-plus-code", v, localTypes, 1, body);
}
@@ -363,10 +372,10 @@ void test_relooper() {
RelooperBlockRef block0 = RelooperAddBlock(relooper, makeCallCheck(module, 0));
RelooperBlockRef block1 = RelooperAddBlock(relooper, makeCallCheck(module, 1));
RelooperBlockRef block2 = RelooperAddBlock(relooper, makeCallCheck(module, 2));
- BinaryenExpressionRef temp = makeInt32(module, -1);
+ BinaryenExpressionRef temp = makeDroppedInt32(module, -1);
RelooperAddBranch(block0, block1, makeInt32(module, 55), temp);
- RelooperAddBranch(block0, block2, NULL, makeInt32(module, -2));
- RelooperAddBranch(block1, block2, NULL, makeInt32(module, -3));
+ RelooperAddBranch(block0, block2, NULL, makeDroppedInt32(module, -2));
+ RelooperAddBranch(block1, block2, NULL, makeDroppedInt32(module, -3));
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "if-plus-code", v, localTypes, 1, body);
}
@@ -403,15 +412,15 @@ void test_relooper() {
RelooperBlockRef block4 = RelooperAddBlock(relooper, makeCallCheck(module, 4));
RelooperBlockRef block5 = RelooperAddBlock(relooper, makeCallCheck(module, 5));
RelooperBlockRef block6 = RelooperAddBlock(relooper, makeCallCheck(module, 6));
- RelooperAddBranch(block0, block1, NULL, makeInt32(module, 10));
+ RelooperAddBranch(block0, block1, NULL, makeDroppedInt32(module, 10));
RelooperAddBranch(block1, block2, makeInt32(module, -2), NULL);
- RelooperAddBranch(block1, block6, NULL, makeInt32(module, 20));
+ RelooperAddBranch(block1, block6, NULL, makeDroppedInt32(module, 20));
RelooperAddBranch(block2, block3, makeInt32(module, -6), NULL);
- RelooperAddBranch(block2, block1, NULL, makeInt32(module, 30));
+ RelooperAddBranch(block2, block1, NULL, makeDroppedInt32(module, 30));
RelooperAddBranch(block3, block4, makeInt32(module, -10), NULL);
RelooperAddBranch(block3, block5, NULL, NULL);
RelooperAddBranch(block4, block5, NULL, NULL);
- RelooperAddBranch(block5, block6, NULL, makeInt32(module, 40));
+ RelooperAddBranch(block5, block6, NULL, makeDroppedInt32(module, 40));
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "nontrivial-loop-plus-phi-to-head", v, localTypes, 1, body);
}
@@ -425,7 +434,7 @@ void test_relooper() {
BinaryenIndex to_block1[] = { 2, 5 };
RelooperAddBranchForSwitch(block0, block1, to_block1, 2, NULL);
BinaryenIndex to_block2[] = { 4 };
- RelooperAddBranchForSwitch(block0, block2, to_block2, 1, makeInt32(module, 55));
+ RelooperAddBranchForSwitch(block0, block2, to_block2, 1, makeDroppedInt32(module, 55));
RelooperAddBranchForSwitch(block0, block3, NULL, 0, NULL);
BinaryenExpressionRef body = RelooperRenderAndDispose(relooper, block0, 0, module);
BinaryenFunctionRef sinker = BinaryenAddFunction(module, "switch", v, localTypes, 1, body);
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 42a5bfee1..c848f0f7c 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -23,340 +23,509 @@ BinaryenFloat64: 4
(local $4 i32)
(block $the-body
(block $the-nothing
- (block $the-value
- (i32.clz
- (i32.const -10)
- )
- (i64.ctz
- (i64.const -22)
- )
- (i32.popcnt
- (i32.const -10)
- )
- (f32.neg
- (f32.const -33.61199951171875)
- )
- (f64.abs
- (f64.const -9005.841)
- )
- (f32.ceil
- (f32.const -33.61199951171875)
- )
- (f64.floor
- (f64.const -9005.841)
- )
- (f32.trunc
- (f32.const -33.61199951171875)
- )
- (f32.nearest
- (f32.const -33.61199951171875)
- )
- (f64.sqrt
- (f64.const -9005.841)
- )
- (i32.eqz
- (i32.const -10)
- )
- (i64.extend_s/i32
- (i32.const -10)
- )
- (i64.extend_u/i32
- (i32.const -10)
- )
- (i32.wrap/i64
- (i64.const -22)
- )
- (i32.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_s/f64
- (f64.const -9005.841)
- )
- (i64.trunc_s/f64
- (f64.const -9005.841)
- )
- (i32.trunc_u/f64
- (f64.const -9005.841)
- )
- (i64.trunc_u/f64
- (f64.const -9005.841)
- )
- (i32.reinterpret/f32
- (f32.const -33.61199951171875)
- )
- (i64.reinterpret/f64
- (f64.const -9005.841)
- )
- (f32.convert_s/i32
- (i32.const -10)
- )
- (f64.convert_s/i32
- (i32.const -10)
- )
- (f32.convert_u/i32
- (i32.const -10)
- )
- (f64.convert_u/i32
- (i32.const -10)
- )
- (f32.convert_s/i64
- (i64.const -22)
- )
- (f64.convert_s/i64
- (i64.const -22)
- )
- (f32.convert_u/i64
- (i64.const -22)
- )
- (f64.convert_u/i64
- (i64.const -22)
- )
- (f64.promote/f32
- (f32.const -33.61199951171875)
- )
- (f32.demote/f64
- (f64.const -9005.841)
- )
- (f32.reinterpret/i32
- (i32.const -10)
- )
- (f64.reinterpret/i64
- (i64.const -22)
- )
- (i32.add
- (i32.const -10)
- (i32.const -11)
- )
- (f64.sub
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (i32.div_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.div_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.rem_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.rem_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.and
- (i32.const -10)
- (i32.const -11)
- )
- (i64.or
- (i64.const -22)
- (i64.const -23)
- )
- (i32.xor
- (i32.const -10)
- (i32.const -11)
- )
- (i64.shl
- (i64.const -22)
- (i64.const -23)
- )
- (i64.shr_u
- (i64.const -22)
- (i64.const -23)
- )
- (i32.shr_s
- (i32.const -10)
- (i32.const -11)
- )
- (i32.rotl
- (i32.const -10)
- (i32.const -11)
- )
- (i64.rotr
- (i64.const -22)
- (i64.const -23)
- )
- (f32.div
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.copysign
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f32.min
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.max
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (i32.eq
- (i32.const -10)
- (i32.const -11)
- )
- (f32.ne
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (i32.lt_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.lt_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.le_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.le_u
- (i32.const -10)
- (i32.const -11)
- )
- (i64.gt_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.gt_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.ge_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.ge_u
- (i64.const -22)
- (i64.const -23)
- )
- (f32.lt
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.le
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f64.gt
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f32.ge
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (block
- )
- (if
- (i32.const 1)
- (i32.const 2)
- (i32.const 3)
- )
- (if
- (i32.const 4)
- (i32.const 5)
- )
- (loop $out $in
- (i32.const 0)
- )
- (loop $in2
- (i32.const 0)
- )
- (loop
- (i32.const 0)
- )
- (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)
- )
- (i32.eqz
- (call "$kitchen()sinker"
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (drop
+ (block $the-value
+ (drop
+ (i32.clz
+ (i32.const -10)
+ )
)
- )
- (i32.eqz
- (i32.trunc_s/f32
- (call_import $an-imported
- (i32.const 13)
- (f64.const 3.7)
+ (drop
+ (i64.ctz
+ (i64.const -22)
)
)
- )
- (i32.eqz
- (call_indirect $iiIfF
- (i32.const 2449)
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (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_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.wrap/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_s/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_u/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_u/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.reinterpret/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.reinterpret/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f32.convert_u/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_u/i64
+ (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
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.rem_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.rem_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.or
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.shl
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.shr_u
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.shr_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.rotl
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.rotr
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.le_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.le_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.gt_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (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)
+ )
+ )
+ (block
+ )
+ (drop
+ (if
+ (i32.const 1)
+ (i32.const 2)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.const 4)
+ (i32.const 5)
+ )
+ (drop
+ (loop $out $in
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop $in2
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop
+ (i32.const 0)
+ )
+ )
+ (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_s/f32
+ (call_import $an-imported
+ (i32.const 13)
+ (f64.const 3.7)
+ )
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (call_indirect $iiIfF
+ (i32.const 2449)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ )
+ )
+ (drop
+ (get_local $0)
+ )
+ (set_local $0
+ (i32.const 101)
+ )
+ (drop
+ (tee_local $0
+ (i32.const 102)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64.load8_s offset=2 align=4
+ (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)
+ )
+ (nop)
+ (unreachable)
)
- (get_local $0)
- (set_local $0
- (i32.const 101)
- )
- (i32.load
- (i32.const 1)
- )
- (i64.load8_s offset=2 align=4
- (i32.const 8)
- )
- (f32.load
- (i32.const 2)
- )
- (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)
- )
- (select
- (i32.const 3)
- (i32.const 5)
- (i32.const 1)
- )
- (return
- (i32.const 1337)
- )
- (nop)
- (unreachable)
)
)
(i32.const 42)
@@ -402,7 +571,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 77)
+ (drop
+ (i32.const 77)
+ )
(br $block$2$break)
)
)
@@ -441,7 +612,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 33)
+ (drop
+ (i32.const 33)
+ )
(br $block$2$break)
)
)
@@ -450,7 +623,9 @@ raw:
(i32.const 1)
)
(block
- (i32.const -66)
+ (drop
+ (i32.const -66)
+ )
(br $shape$0$continue)
)
)
@@ -483,7 +658,9 @@ raw:
(if
(i32.const 55)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(block
(call_import $check
(i32.const 1)
@@ -491,7 +668,9 @@ raw:
)
)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(block
(call_import $check
(i32.const 2)
@@ -534,19 +713,25 @@ raw:
(if
(i32.const 55)
(block
- (i32.const -1)
+ (drop
+ (i32.const -1)
+ )
(block
(call_import $check
(i32.const 1)
)
(block
- (i32.const -3)
+ (drop
+ (i32.const -3)
+ )
(br $block$3$break)
)
)
)
(block
- (i32.const -2)
+ (drop
+ (i32.const -2)
+ )
(br $block$3$break)
)
)
@@ -626,7 +811,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(br $block$2$break)
)
)
@@ -642,7 +829,9 @@ raw:
(i32.const -2)
(br $block$3$break)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(br $block$7$break)
)
)
@@ -655,7 +844,9 @@ raw:
(i32.const -6)
(br $block$4$break)
(block
- (i32.const 30)
+ (drop
+ (i32.const 30)
+ )
(br $shape$1$continue)
)
)
@@ -685,7 +876,9 @@ raw:
(i32.const 5)
)
(block
- (i32.const 40)
+ (drop
+ (i32.const 40)
+ )
(br $block$7$break)
)
)
@@ -721,7 +914,9 @@ raw:
(br $switch$1$leave)
)
(block
- (i32.const 55)
+ (drop
+ (i32.const 55)
+ )
(block
(call_import $check
(i32.const 2)
@@ -1327,43 +1522,48 @@ int main() {
}
expressions[222] = BinaryenUnary(the_module, 20, expressions[221]);
expressions[223] = BinaryenGetLocal(the_module, 0, 1);
- expressions[224] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
- expressions[225] = BinaryenSetLocal(the_module, 0, expressions[224]);
- expressions[226] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- expressions[227] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[226]);
- expressions[228] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
- expressions[229] = BinaryenLoad(the_module, 1, 1, 2, 4, 2, expressions[228]);
- expressions[230] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- expressions[231] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[230]);
- expressions[232] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
- expressions[233] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[232]);
- expressions[234] = BinaryenStore(the_module, 4, 0, 0, expressions[25], expressions[26]);
- expressions[235] = BinaryenStore(the_module, 8, 2, 4, expressions[27], expressions[28]);
- expressions[236] = BinaryenSelect(the_module, expressions[22], expressions[23], expressions[24]);
- expressions[237] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
- expressions[238] = BinaryenReturn(the_module, expressions[237]);
- expressions[239] = BinaryenNop(the_module);
- expressions[240] = BinaryenUnreachable(the_module);
+ expressions[224] = BinaryenDrop(the_module, expressions[223]);
+ expressions[225] = BinaryenConst(the_module, BinaryenLiteralInt32(101));
+ expressions[226] = BinaryenSetLocal(the_module, 0, expressions[225]);
+ expressions[227] = BinaryenConst(the_module, BinaryenLiteralInt32(102));
+ expressions[228] = BinaryenTeeLocal(the_module, 0, expressions[227]);
+ expressions[229] = BinaryenDrop(the_module, expressions[228]);
+ expressions[230] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ expressions[231] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[230]);
+ expressions[232] = BinaryenConst(the_module, BinaryenLiteralInt32(8));
+ expressions[233] = BinaryenLoad(the_module, 1, 1, 2, 4, 2, expressions[232]);
+ expressions[234] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ expressions[235] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[234]);
+ expressions[236] = BinaryenConst(the_module, BinaryenLiteralInt32(9));
+ expressions[237] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[236]);
+ expressions[238] = BinaryenStore(the_module, 4, 0, 0, expressions[25], expressions[26], 1);
+ expressions[239] = BinaryenStore(the_module, 8, 2, 4, expressions[27], expressions[28], 2);
+ expressions[240] = BinaryenSelect(the_module, expressions[22], expressions[23], expressions[24]);
+ expressions[241] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
+ expressions[242] = BinaryenReturn(the_module, expressions[241]);
+ expressions[243] = BinaryenNop(the_module);
+ expressions[244] = BinaryenUnreachable(the_module);
BinaryenExpressionPrint(expressions[36]);
(f32.neg
(f32.const -33.61199951171875)
)
{
- BinaryenExpressionRef children[] = { expressions[30], expressions[32], expressions[34], expressions[36], expressions[38], expressions[40], expressions[42], expressions[44], expressions[46], expressions[48], expressions[50], expressions[52], expressions[54], expressions[56], expressions[58], expressions[60], expressions[62], expressions[64], expressions[66], expressions[68], expressions[70], expressions[72], expressions[74], expressions[76], expressions[78], expressions[80], expressions[82], expressions[84], expressions[86], expressions[88], expressions[90], expressions[92], expressions[94], expressions[96], expressions[98], expressions[100], expressions[103], expressions[106], expressions[109], expressions[112], expressions[115], expressions[118], expressions[121], expressions[124], expressions[127], expressions[130], expressions[133], expressions[136], expressions[139], expressions[142], expressions[145], expressions[148], expressions[151], expressions[154], expressions[157], expressions[160], expressions[163], expressions[166], expressions[169], expressions[172], expressions[175], expressions[178], expressions[181], expressions[184], expressions[187], expressions[190], expressions[193], expressions[196], expressions[197], expressions[198], expressions[199], expressions[201], expressions[203], expressions[205], expressions[206], expressions[208], expressions[210], expressions[211], expressions[212], expressions[214], expressions[216], expressions[219], expressions[222], expressions[223], expressions[225], expressions[227], expressions[229], expressions[231], expressions[233], expressions[234], expressions[235], expressions[236], expressions[238], expressions[239], expressions[240] };
- expressions[241] = BinaryenBlock(the_module, "the-value", children, 95);
+ BinaryenExpressionRef children[] = { expressions[30], expressions[32], expressions[34], expressions[36], expressions[38], expressions[40], expressions[42], expressions[44], expressions[46], expressions[48], expressions[50], expressions[52], expressions[54], expressions[56], expressions[58], expressions[60], expressions[62], expressions[64], expressions[66], expressions[68], expressions[70], expressions[72], expressions[74], expressions[76], expressions[78], expressions[80], expressions[82], expressions[84], expressions[86], expressions[88], expressions[90], expressions[92], expressions[94], expressions[96], expressions[98], expressions[100], expressions[103], expressions[106], expressions[109], expressions[112], expressions[115], expressions[118], expressions[121], expressions[124], expressions[127], expressions[130], expressions[133], expressions[136], expressions[139], expressions[142], expressions[145], expressions[148], expressions[151], expressions[154], expressions[157], expressions[160], expressions[163], expressions[166], expressions[169], expressions[172], expressions[175], expressions[178], expressions[181], expressions[184], expressions[187], expressions[190], expressions[193], expressions[196], expressions[197], expressions[198], expressions[199], expressions[201], expressions[203], expressions[205], expressions[206], expressions[208], expressions[210], expressions[211], expressions[212], expressions[214], expressions[216], expressions[219], expressions[222], expressions[224], expressions[226], expressions[229], expressions[231], expressions[233], expressions[235], expressions[237], expressions[238], expressions[239], expressions[240], expressions[242], expressions[243], expressions[244] };
+ expressions[245] = BinaryenBlock(the_module, "the-value", children, 96);
}
+ expressions[246] = BinaryenDrop(the_module, expressions[245]);
{
- BinaryenExpressionRef children[] = { expressions[241] };
- expressions[242] = BinaryenBlock(the_module, "the-nothing", children, 1);
+ BinaryenExpressionRef children[] = { expressions[246] };
+ expressions[247] = BinaryenBlock(the_module, "the-nothing", children, 1);
}
- expressions[243] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[248] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef children[] = { expressions[242], expressions[243] };
- expressions[244] = BinaryenBlock(the_module, "the-body", children, 2);
+ BinaryenExpressionRef children[] = { expressions[247], expressions[248] };
+ expressions[249] = BinaryenBlock(the_module, "the-body", children, 2);
}
{
BinaryenType varTypes[] = { 1 };
- functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[244]);
+ functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[249]);
}
{
BinaryenIndex paramTypes[] = { 1, 4 };
@@ -1397,6 +1597,7 @@ int main() {
BinaryenIndex paramTypes[] = { 0 };
functionTypes[3] = BinaryenAddFunctionType(the_module, NULL, 0, paramTypes, 0);
}
+ BinaryenModuleAutoDrop(the_module);
BinaryenModuleValidate(the_module);
BinaryenModulePrint(the_module);
(module
@@ -1416,340 +1617,509 @@ int main() {
(local $4 i32)
(block $the-body
(block $the-nothing
- (block $the-value
- (i32.clz
- (i32.const -10)
- )
- (i64.ctz
- (i64.const -22)
- )
- (i32.popcnt
- (i32.const -10)
- )
- (f32.neg
- (f32.const -33.61199951171875)
- )
- (f64.abs
- (f64.const -9005.841)
- )
- (f32.ceil
- (f32.const -33.61199951171875)
- )
- (f64.floor
- (f64.const -9005.841)
- )
- (f32.trunc
- (f32.const -33.61199951171875)
- )
- (f32.nearest
- (f32.const -33.61199951171875)
- )
- (f64.sqrt
- (f64.const -9005.841)
- )
- (i32.eqz
- (i32.const -10)
- )
- (i64.extend_s/i32
- (i32.const -10)
- )
- (i64.extend_u/i32
- (i32.const -10)
- )
- (i32.wrap/i64
- (i64.const -22)
- )
- (i32.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_s/f64
- (f64.const -9005.841)
- )
- (i64.trunc_s/f64
- (f64.const -9005.841)
- )
- (i32.trunc_u/f64
- (f64.const -9005.841)
- )
- (i64.trunc_u/f64
- (f64.const -9005.841)
- )
- (i32.reinterpret/f32
- (f32.const -33.61199951171875)
- )
- (i64.reinterpret/f64
- (f64.const -9005.841)
- )
- (f32.convert_s/i32
- (i32.const -10)
- )
- (f64.convert_s/i32
- (i32.const -10)
- )
- (f32.convert_u/i32
- (i32.const -10)
- )
- (f64.convert_u/i32
- (i32.const -10)
- )
- (f32.convert_s/i64
- (i64.const -22)
- )
- (f64.convert_s/i64
- (i64.const -22)
- )
- (f32.convert_u/i64
- (i64.const -22)
- )
- (f64.convert_u/i64
- (i64.const -22)
- )
- (f64.promote/f32
- (f32.const -33.61199951171875)
- )
- (f32.demote/f64
- (f64.const -9005.841)
- )
- (f32.reinterpret/i32
- (i32.const -10)
- )
- (f64.reinterpret/i64
- (i64.const -22)
- )
- (i32.add
- (i32.const -10)
- (i32.const -11)
- )
- (f64.sub
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (i32.div_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.div_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.rem_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.rem_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.and
- (i32.const -10)
- (i32.const -11)
- )
- (i64.or
- (i64.const -22)
- (i64.const -23)
- )
- (i32.xor
- (i32.const -10)
- (i32.const -11)
- )
- (i64.shl
- (i64.const -22)
- (i64.const -23)
- )
- (i64.shr_u
- (i64.const -22)
- (i64.const -23)
- )
- (i32.shr_s
- (i32.const -10)
- (i32.const -11)
- )
- (i32.rotl
- (i32.const -10)
- (i32.const -11)
- )
- (i64.rotr
- (i64.const -22)
- (i64.const -23)
- )
- (f32.div
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.copysign
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f32.min
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.max
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (i32.eq
- (i32.const -10)
- (i32.const -11)
- )
- (f32.ne
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (i32.lt_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.lt_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.le_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.le_u
- (i32.const -10)
- (i32.const -11)
- )
- (i64.gt_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.gt_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.ge_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.ge_u
- (i64.const -22)
- (i64.const -23)
- )
- (f32.lt
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.le
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f64.gt
- (f64.const -9005.841)
- (f64.const -9007.333)
- )
- (f32.ge
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (block
- )
- (if
- (i32.const 1)
- (i32.const 2)
- (i32.const 3)
- )
- (if
- (i32.const 4)
- (i32.const 5)
- )
- (loop $out $in
- (i32.const 0)
- )
- (loop $in2
- (i32.const 0)
- )
- (loop
- (i32.const 0)
- )
- (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)
- )
- (i32.eqz
- (call "$kitchen()sinker"
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (drop
+ (block $the-value
+ (drop
+ (i32.clz
+ (i32.const -10)
+ )
)
- )
- (i32.eqz
- (i32.trunc_s/f32
- (call_import $an-imported
- (i32.const 13)
- (f64.const 3.7)
+ (drop
+ (i64.ctz
+ (i64.const -22)
)
)
- )
- (i32.eqz
- (call_indirect $iiIfF
- (i32.const 2449)
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (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_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.wrap/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_s/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.trunc_u/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i64.trunc_u/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (i32.reinterpret/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.reinterpret/f64
+ (f64.const -9005.841)
+ )
+ )
+ (drop
+ (f32.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f32.convert_u/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_u/i64
+ (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
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.rem_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.rem_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.or
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.shl
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.shr_u
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.shr_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.rotl
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.rotr
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.le_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.le_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.gt_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (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)
+ )
+ )
+ (block
+ )
+ (drop
+ (if
+ (i32.const 1)
+ (i32.const 2)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.const 4)
+ (i32.const 5)
+ )
+ (drop
+ (loop $out $in
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop $in2
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop
+ (i32.const 0)
+ )
+ )
+ (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_s/f32
+ (call_import $an-imported
+ (i32.const 13)
+ (f64.const 3.7)
+ )
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (call_indirect $iiIfF
+ (i32.const 2449)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ )
+ )
+ (drop
+ (get_local $0)
+ )
+ (set_local $0
+ (i32.const 101)
+ )
+ (drop
+ (tee_local $0
+ (i32.const 102)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64.load8_s offset=2 align=4
+ (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)
+ )
+ (nop)
+ (unreachable)
)
- (get_local $0)
- (set_local $0
- (i32.const 101)
- )
- (i32.load
- (i32.const 1)
- )
- (i64.load8_s offset=2 align=4
- (i32.const 8)
- )
- (f32.load
- (i32.const 2)
- )
- (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)
- )
- (select
- (i32.const 3)
- (i32.const 5)
- (i32.const 1)
- )
- (return
- (i32.const 1337)
- )
- (nop)
- (unreachable)
)
)
(i32.const 42)
@@ -1820,231 +2190,211 @@ int main() {
}
relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[12]);
expressions[13] = BinaryenConst(the_module, BinaryenLiteralInt32(77));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[13]);
- expressions[14] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[14] = BinaryenDrop(the_module, expressions[13]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[14]);
+ expressions[15] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[2] = BinaryenAddFunction(the_module, "two-blocks-plus-code", functionTypes[0], varTypes, 1, expressions[14]);
+ functions[2] = BinaryenAddFunction(the_module, "two-blocks-plus-code", functionTypes[0], varTypes, 1, expressions[15]);
}
the_relooper = RelooperCreate();
- expressions[15] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[16] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[15] };
- expressions[16] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[16] };
+ expressions[17] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[16]);
- expressions[17] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[17]);
+ expressions[18] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[17] };
- expressions[18] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[18] };
+ expressions[19] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[18]);
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[19]);
RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]);
- expressions[19] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[20] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[3] = BinaryenAddFunction(the_module, "loop", functionTypes[0], varTypes, 1, expressions[19]);
+ functions[3] = BinaryenAddFunction(the_module, "loop", functionTypes[0], varTypes, 1, expressions[20]);
}
the_relooper = RelooperCreate();
- expressions[20] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[20] };
- expressions[21] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[21] };
+ expressions[22] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[21]);
- expressions[22] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[22]);
+ expressions[23] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[22] };
- expressions[23] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[23] };
+ expressions[24] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[23]);
- expressions[24] = BinaryenConst(the_module, BinaryenLiteralInt32(33));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[24]);
- expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(-66));
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[25]);
- expressions[26] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[24]);
+ expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(33));
+ expressions[26] = BinaryenDrop(the_module, expressions[25]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[26]);
+ expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(-66));
+ expressions[28] = BinaryenDrop(the_module, expressions[27]);
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[28]);
+ expressions[29] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[4] = BinaryenAddFunction(the_module, "loop-plus-code", functionTypes[0], varTypes, 1, expressions[26]);
+ functions[4] = BinaryenAddFunction(the_module, "loop-plus-code", functionTypes[0], varTypes, 1, expressions[29]);
}
the_relooper = RelooperCreate();
- expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[30] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[27] };
- expressions[28] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[30] };
+ expressions[31] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[28]);
- expressions[29] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[31]);
+ expressions[32] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[29] };
- expressions[30] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[32] };
+ expressions[33] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[30]);
- expressions[31] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[33]);
+ expressions[34] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[31] };
- expressions[32] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[34] };
+ expressions[35] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[32]);
- expressions[33] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[33], expressions[0]);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[35]);
+ expressions[36] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[36], expressions[0]);
RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
- expressions[34] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[37] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[5] = BinaryenAddFunction(the_module, "split", functionTypes[0], varTypes, 1, expressions[34]);
+ functions[5] = BinaryenAddFunction(the_module, "split", functionTypes[0], varTypes, 1, expressions[37]);
}
the_relooper = RelooperCreate();
- expressions[35] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[38] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[35] };
- expressions[36] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[38] };
+ expressions[39] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[36]);
- expressions[37] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[39]);
+ expressions[40] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[37] };
- expressions[38] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[40] };
+ expressions[41] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[38]);
- expressions[39] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[41]);
+ expressions[42] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[39] };
- expressions[40] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[42] };
+ expressions[43] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[40]);
- expressions[41] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
- expressions[42] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[42], expressions[41]);
- expressions[43] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[43]);
- expressions[44] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[43]);
+ expressions[44] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[45] = BinaryenDrop(the_module, expressions[44]);
+ expressions[46] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[46], expressions[45]);
+ expressions[47] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
+ expressions[48] = BinaryenDrop(the_module, expressions[47]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[48]);
+ expressions[49] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[6] = BinaryenAddFunction(the_module, "split-plus-code", functionTypes[0], varTypes, 1, expressions[44]);
+ functions[6] = BinaryenAddFunction(the_module, "split-plus-code", functionTypes[0], varTypes, 1, expressions[49]);
}
the_relooper = RelooperCreate();
- expressions[45] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[50] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[45] };
- expressions[46] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[50] };
+ expressions[51] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[46]);
- expressions[47] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[51]);
+ expressions[52] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[47] };
- expressions[48] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[52] };
+ expressions[53] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[48]);
- expressions[49] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[53]);
+ expressions[54] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[49] };
- expressions[50] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[54] };
+ expressions[55] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[50]);
- expressions[51] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[51], expressions[0]);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[55]);
+ expressions[56] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[56], expressions[0]);
RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
- expressions[52] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[57] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[7] = BinaryenAddFunction(the_module, "if", functionTypes[0], varTypes, 1, expressions[52]);
+ functions[7] = BinaryenAddFunction(the_module, "if", functionTypes[0], varTypes, 1, expressions[57]);
}
the_relooper = RelooperCreate();
- expressions[53] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[58] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[53] };
- expressions[54] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[58] };
+ expressions[59] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[54]);
- expressions[55] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[59]);
+ expressions[60] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[55] };
- expressions[56] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[60] };
+ expressions[61] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[56]);
- expressions[57] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[61]);
+ expressions[62] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[57] };
- expressions[58] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[62] };
+ expressions[63] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[58]);
- expressions[59] = BinaryenConst(the_module, BinaryenLiteralInt32(-1));
- expressions[60] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[60], expressions[59]);
- expressions[61] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[61]);
- expressions[62] = BinaryenConst(the_module, BinaryenLiteralInt32(-3));
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[62]);
- expressions[63] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[63]);
+ expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(-1));
+ expressions[65] = BinaryenDrop(the_module, expressions[64]);
+ expressions[66] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[66], expressions[65]);
+ expressions[67] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
+ expressions[68] = BinaryenDrop(the_module, expressions[67]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[68]);
+ expressions[69] = BinaryenConst(the_module, BinaryenLiteralInt32(-3));
+ expressions[70] = BinaryenDrop(the_module, expressions[69]);
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[70]);
+ expressions[71] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[8] = BinaryenAddFunction(the_module, "if-plus-code", functionTypes[0], varTypes, 1, expressions[63]);
+ functions[8] = BinaryenAddFunction(the_module, "if-plus-code", functionTypes[0], varTypes, 1, expressions[71]);
}
the_relooper = RelooperCreate();
- expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
- {
- BinaryenExpressionRef operands[] = { expressions[64] };
- expressions[65] = BinaryenCallImport(the_module, "check", operands, 1, 0);
- }
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[65]);
- expressions[66] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
- {
- BinaryenExpressionRef operands[] = { expressions[66] };
- expressions[67] = BinaryenCallImport(the_module, "check", operands, 1, 0);
- }
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[67]);
- expressions[68] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
- {
- BinaryenExpressionRef operands[] = { expressions[68] };
- expressions[69] = BinaryenCallImport(the_module, "check", operands, 1, 0);
- }
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[69]);
- expressions[70] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ expressions[72] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[70] };
- expressions[71] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[72] };
+ expressions[73] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[71]);
- expressions[72] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[72], expressions[0]);
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[3], expressions[0], expressions[0]);
- RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[0], expressions[0]);
- expressions[73] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
- {
- BinaryenType varTypes[] = { 1 };
- functions[9] = BinaryenAddFunction(the_module, "if-else", functionTypes[0], varTypes, 1, expressions[73]);
- }
- the_relooper = RelooperCreate();
- expressions[74] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[73]);
+ expressions[74] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
BinaryenExpressionRef operands[] = { expressions[74] };
expressions[75] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[75]);
- expressions[76] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[75]);
+ expressions[76] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
BinaryenExpressionRef operands[] = { expressions[76] };
expressions[77] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[77]);
- expressions[78] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[77]);
+ expressions[78] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
{
BinaryenExpressionRef operands[] = { expressions[78] };
expressions[79] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[79]);
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
- expressions[80] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[80], expressions[0]);
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
+ relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[79]);
+ expressions[80] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[80], expressions[0]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[3], expressions[0], expressions[0]);
+ RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[0], expressions[0]);
expressions[81] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[10] = BinaryenAddFunction(the_module, "loop-tail", functionTypes[0], varTypes, 1, expressions[81]);
+ functions[9] = BinaryenAddFunction(the_module, "if-else", functionTypes[0], varTypes, 1, expressions[81]);
}
the_relooper = RelooperCreate();
expressions[82] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
@@ -2065,145 +2415,178 @@ int main() {
expressions[87] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[87]);
- expressions[88] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]);
+ expressions[88] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[88], expressions[0]);
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
+ expressions[89] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
- BinaryenExpressionRef operands[] = { expressions[88] };
- expressions[89] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenType varTypes[] = { 1 };
+ functions[10] = BinaryenAddFunction(the_module, "loop-tail", functionTypes[0], varTypes, 1, expressions[89]);
}
- relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[89]);
- expressions[90] = BinaryenConst(the_module, BinaryenLiteralInt32(4));
+ the_relooper = RelooperCreate();
+ expressions[90] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
BinaryenExpressionRef operands[] = { expressions[90] };
expressions[91] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[4] = RelooperAddBlock(the_relooper, expressions[91]);
- expressions[92] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[91]);
+ expressions[92] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
BinaryenExpressionRef operands[] = { expressions[92] };
expressions[93] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[5] = RelooperAddBlock(the_relooper, expressions[93]);
- expressions[94] = BinaryenConst(the_module, BinaryenLiteralInt32(6));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[93]);
+ expressions[94] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
BinaryenExpressionRef operands[] = { expressions[94] };
expressions[95] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[6] = RelooperAddBlock(the_relooper, expressions[95]);
- expressions[96] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[96]);
- expressions[97] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[97], expressions[0]);
- expressions[98] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
- RelooperAddBranch(relooperBlocks[1], relooperBlocks[6], expressions[0], expressions[98]);
- expressions[99] = BinaryenConst(the_module, BinaryenLiteralInt32(-6));
- RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[99], expressions[0]);
- expressions[100] = BinaryenConst(the_module, BinaryenLiteralInt32(30));
- RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[100]);
- expressions[101] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
- RelooperAddBranch(relooperBlocks[3], relooperBlocks[4], expressions[101], expressions[0]);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[95]);
+ expressions[96] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ {
+ BinaryenExpressionRef operands[] = { expressions[96] };
+ expressions[97] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ }
+ relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[97]);
+ expressions[98] = BinaryenConst(the_module, BinaryenLiteralInt32(4));
+ {
+ BinaryenExpressionRef operands[] = { expressions[98] };
+ expressions[99] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ }
+ relooperBlocks[4] = RelooperAddBlock(the_relooper, expressions[99]);
+ expressions[100] = BinaryenConst(the_module, BinaryenLiteralInt32(5));
+ {
+ BinaryenExpressionRef operands[] = { expressions[100] };
+ expressions[101] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ }
+ relooperBlocks[5] = RelooperAddBlock(the_relooper, expressions[101]);
+ expressions[102] = BinaryenConst(the_module, BinaryenLiteralInt32(6));
+ {
+ BinaryenExpressionRef operands[] = { expressions[102] };
+ expressions[103] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ }
+ relooperBlocks[6] = RelooperAddBlock(the_relooper, expressions[103]);
+ expressions[104] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ expressions[105] = BinaryenDrop(the_module, expressions[104]);
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[105]);
+ expressions[106] = BinaryenConst(the_module, BinaryenLiteralInt32(-2));
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[106], expressions[0]);
+ expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt32(20));
+ expressions[108] = BinaryenDrop(the_module, expressions[107]);
+ RelooperAddBranch(relooperBlocks[1], relooperBlocks[6], expressions[0], expressions[108]);
+ expressions[109] = BinaryenConst(the_module, BinaryenLiteralInt32(-6));
+ RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[109], expressions[0]);
+ expressions[110] = BinaryenConst(the_module, BinaryenLiteralInt32(30));
+ expressions[111] = BinaryenDrop(the_module, expressions[110]);
+ RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[111]);
+ expressions[112] = BinaryenConst(the_module, BinaryenLiteralInt32(-10));
+ RelooperAddBranch(relooperBlocks[3], relooperBlocks[4], expressions[112], expressions[0]);
RelooperAddBranch(relooperBlocks[3], relooperBlocks[5], expressions[0], expressions[0]);
RelooperAddBranch(relooperBlocks[4], relooperBlocks[5], expressions[0], expressions[0]);
- expressions[102] = BinaryenConst(the_module, BinaryenLiteralInt32(40));
- RelooperAddBranch(relooperBlocks[5], relooperBlocks[6], expressions[0], expressions[102]);
- expressions[103] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[113] = BinaryenConst(the_module, BinaryenLiteralInt32(40));
+ expressions[114] = BinaryenDrop(the_module, expressions[113]);
+ RelooperAddBranch(relooperBlocks[5], relooperBlocks[6], expressions[0], expressions[114]);
+ expressions[115] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[11] = BinaryenAddFunction(the_module, "nontrivial-loop-plus-phi-to-head", functionTypes[0], varTypes, 1, expressions[103]);
+ functions[11] = BinaryenAddFunction(the_module, "nontrivial-loop-plus-phi-to-head", functionTypes[0], varTypes, 1, expressions[115]);
}
the_relooper = RelooperCreate();
- expressions[104] = BinaryenConst(the_module, BinaryenLiteralInt32(-99));
- expressions[105] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[116] = BinaryenConst(the_module, BinaryenLiteralInt32(-99));
+ expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[105] };
- expressions[106] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[117] };
+ expressions[118] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlockWithSwitch(the_relooper, expressions[106], expressions[104]);
- expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlockWithSwitch(the_relooper, expressions[118], expressions[116]);
+ expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[107] };
- expressions[108] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[119] };
+ expressions[120] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[108]);
- expressions[109] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[120]);
+ expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[109] };
- expressions[110] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[121] };
+ expressions[122] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[110]);
- expressions[111] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[122]);
+ expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt32(3));
{
- BinaryenExpressionRef operands[] = { expressions[111] };
- expressions[112] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[123] };
+ expressions[124] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[112]);
+ relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[124]);
{
BinaryenIndex indexes[] = { 2, 5 };
RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[1], indexes, 2, expressions[0]);
}
- expressions[113] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ expressions[125] = BinaryenConst(the_module, BinaryenLiteralInt32(55));
+ expressions[126] = BinaryenDrop(the_module, expressions[125]);
{
BinaryenIndex indexes[] = { 4 };
- RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[2], indexes, 1, expressions[113]);
+ RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[2], indexes, 1, expressions[126]);
}
{
BinaryenIndex indexes[] = { 0 };
RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[3], indexes, 0, expressions[0]);
}
- expressions[114] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ expressions[127] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[12] = BinaryenAddFunction(the_module, "switch", functionTypes[0], varTypes, 1, expressions[114]);
+ functions[12] = BinaryenAddFunction(the_module, "switch", functionTypes[0], varTypes, 1, expressions[127]);
}
the_relooper = RelooperCreate();
- expressions[115] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
+ expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt32(0));
{
- BinaryenExpressionRef operands[] = { expressions[115] };
- expressions[116] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[128] };
+ expressions[129] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[116]);
- expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[129]);
+ expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt32(1));
{
- BinaryenExpressionRef operands[] = { expressions[117] };
- expressions[118] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[130] };
+ expressions[131] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[118]);
- expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
+ relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[131]);
+ expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt32(2));
{
- BinaryenExpressionRef operands[] = { expressions[119] };
- expressions[120] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[132] };
+ expressions[133] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[120]);
- expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
- RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[121], expressions[0]);
+ relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[133]);
+ expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
+ RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[134], expressions[0]);
RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]);
RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]);
RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[0]);
- expressions[122] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 3, the_module);
+ expressions[135] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 3, the_module);
{
BinaryenType varTypes[] = { 1, 1, 2, 1, 3, 4, 1 };
- functions[13] = BinaryenAddFunction(the_module, "duffs-device", functionTypes[0], varTypes, 7, expressions[122]);
+ functions[13] = BinaryenAddFunction(the_module, "duffs-device", functionTypes[0], varTypes, 7, expressions[135]);
}
{
BinaryenIndex paramTypes[] = { 0 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "i", 1, paramTypes, 0);
}
the_relooper = RelooperCreate();
- expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
+ expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt32(42));
{
- BinaryenExpressionRef operands[] = { expressions[123] };
- expressions[124] = BinaryenCallImport(the_module, "check", operands, 1, 0);
+ BinaryenExpressionRef operands[] = { expressions[136] };
+ expressions[137] = BinaryenCallImport(the_module, "check", operands, 1, 0);
}
- expressions[125] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
- expressions[126] = BinaryenReturn(the_module, expressions[125]);
+ expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt32(1337));
+ expressions[139] = BinaryenReturn(the_module, expressions[138]);
{
- BinaryenExpressionRef children[] = { expressions[124], expressions[126] };
- expressions[127] = BinaryenBlock(the_module, "the-list", children, 2);
+ BinaryenExpressionRef children[] = { expressions[137], expressions[139] };
+ expressions[140] = BinaryenBlock(the_module, "the-list", children, 2);
}
- relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[127]);
- expressions[128] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
+ relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[140]);
+ expressions[141] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module);
{
BinaryenType varTypes[] = { 1 };
- functions[14] = BinaryenAddFunction(the_module, "return", functionTypes[2], varTypes, 1, expressions[128]);
+ functions[14] = BinaryenAddFunction(the_module, "return", functionTypes[2], varTypes, 1, expressions[141]);
}
raw:
BinaryenModulePrint(the_module);
@@ -2242,7 +2625,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 77)
+ (drop
+ (i32.const 77)
+ )
(br $block$2$break)
)
)
@@ -2281,7 +2666,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 33)
+ (drop
+ (i32.const 33)
+ )
(br $block$2$break)
)
)
@@ -2290,7 +2677,9 @@ raw:
(i32.const 1)
)
(block
- (i32.const -66)
+ (drop
+ (i32.const -66)
+ )
(br $shape$0$continue)
)
)
@@ -2323,7 +2712,9 @@ raw:
(if
(i32.const 55)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(block
(call_import $check
(i32.const 1)
@@ -2331,7 +2722,9 @@ raw:
)
)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(block
(call_import $check
(i32.const 2)
@@ -2374,19 +2767,25 @@ raw:
(if
(i32.const 55)
(block
- (i32.const -1)
+ (drop
+ (i32.const -1)
+ )
(block
(call_import $check
(i32.const 1)
)
(block
- (i32.const -3)
+ (drop
+ (i32.const -3)
+ )
(br $block$3$break)
)
)
)
(block
- (i32.const -2)
+ (drop
+ (i32.const -2)
+ )
(br $block$3$break)
)
)
@@ -2466,7 +2865,9 @@ raw:
(i32.const 0)
)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(br $block$2$break)
)
)
@@ -2482,7 +2883,9 @@ raw:
(i32.const -2)
(br $block$3$break)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(br $block$7$break)
)
)
@@ -2495,7 +2898,9 @@ raw:
(i32.const -6)
(br $block$4$break)
(block
- (i32.const 30)
+ (drop
+ (i32.const 30)
+ )
(br $shape$1$continue)
)
)
@@ -2525,7 +2930,9 @@ raw:
(i32.const 5)
)
(block
- (i32.const 40)
+ (drop
+ (i32.const 40)
+ )
(br $block$7$break)
)
)
@@ -2561,7 +2968,9 @@ raw:
(br $switch$1$leave)
)
(block
- (i32.const 55)
+ (drop
+ (i32.const 55)
+ )
(block
(call_import $check
(i32.const 2)
diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index 7e32ba431..52da01f9d 100644
--- a/test/example/c-api-kitchen-sink.txt.txt
+++ b/test/example/c-api-kitchen-sink.txt.txt
@@ -18,340 +18,509 @@
(local $4 i32)
(block $the-body
(block $the-nothing
- (block $the-value
- (i32.clz
- (i32.const -10)
- )
- (i64.ctz
- (i64.const -22)
- )
- (i32.popcnt
- (i32.const -10)
- )
- (f32.neg
- (f32.const -33.61199951171875)
- )
- (f64.abs
- (f64.const -9005.84)
- )
- (f32.ceil
- (f32.const -33.61199951171875)
- )
- (f64.floor
- (f64.const -9005.84)
- )
- (f32.trunc
- (f32.const -33.61199951171875)
- )
- (f32.nearest
- (f32.const -33.61199951171875)
- )
- (f64.sqrt
- (f64.const -9005.84)
- )
- (i32.eqz
- (i32.const -10)
- )
- (i64.extend_s/i32
- (i32.const -10)
- )
- (i64.extend_u/i32
- (i32.const -10)
- )
- (i32.wrap/i64
- (i64.const -22)
- )
- (i32.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_s/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i64.trunc_u/f32
- (f32.const -33.61199951171875)
- )
- (i32.trunc_s/f64
- (f64.const -9005.84)
- )
- (i64.trunc_s/f64
- (f64.const -9005.84)
- )
- (i32.trunc_u/f64
- (f64.const -9005.84)
- )
- (i64.trunc_u/f64
- (f64.const -9005.84)
- )
- (i32.reinterpret/f32
- (f32.const -33.61199951171875)
- )
- (i64.reinterpret/f64
- (f64.const -9005.84)
- )
- (f32.convert_s/i32
- (i32.const -10)
- )
- (f64.convert_s/i32
- (i32.const -10)
- )
- (f32.convert_u/i32
- (i32.const -10)
- )
- (f64.convert_u/i32
- (i32.const -10)
- )
- (f32.convert_s/i64
- (i64.const -22)
- )
- (f64.convert_s/i64
- (i64.const -22)
- )
- (f32.convert_u/i64
- (i64.const -22)
- )
- (f64.convert_u/i64
- (i64.const -22)
- )
- (f64.promote/f32
- (f32.const -33.61199951171875)
- )
- (f32.demote/f64
- (f64.const -9005.84)
- )
- (f32.reinterpret/i32
- (i32.const -10)
- )
- (f64.reinterpret/i64
- (i64.const -22)
- )
- (i32.add
- (i32.const -10)
- (i32.const -11)
- )
- (f64.sub
- (f64.const -9005.84)
- (f64.const -9007.33)
- )
- (i32.div_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.div_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.rem_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.rem_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.and
- (i32.const -10)
- (i32.const -11)
- )
- (i64.or
- (i64.const -22)
- (i64.const -23)
- )
- (i32.xor
- (i32.const -10)
- (i32.const -11)
- )
- (i64.shl
- (i64.const -22)
- (i64.const -23)
- )
- (i64.shr_u
- (i64.const -22)
- (i64.const -23)
- )
- (i32.shr_s
- (i32.const -10)
- (i32.const -11)
- )
- (i32.rotl
- (i32.const -10)
- (i32.const -11)
- )
- (i64.rotr
- (i64.const -22)
- (i64.const -23)
- )
- (f32.div
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.copysign
- (f64.const -9005.84)
- (f64.const -9007.33)
- )
- (f32.min
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.max
- (f64.const -9005.84)
- (f64.const -9007.33)
- )
- (i32.eq
- (i32.const -10)
- (i32.const -11)
- )
- (f32.ne
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (i32.lt_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.lt_u
- (i64.const -22)
- (i64.const -23)
- )
- (i64.le_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.le_u
- (i32.const -10)
- (i32.const -11)
- )
- (i64.gt_s
- (i64.const -22)
- (i64.const -23)
- )
- (i32.gt_u
- (i32.const -10)
- (i32.const -11)
- )
- (i32.ge_s
- (i32.const -10)
- (i32.const -11)
- )
- (i64.ge_u
- (i64.const -22)
- (i64.const -23)
- )
- (f32.lt
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (f64.le
- (f64.const -9005.84)
- (f64.const -9007.33)
- )
- (f64.gt
- (f64.const -9005.84)
- (f64.const -9007.33)
- )
- (f32.ge
- (f32.const -33.61199951171875)
- (f32.const -62.5)
- )
- (block
- )
- (if
- (i32.const 1)
- (i32.const 2)
- (i32.const 3)
- )
- (if
- (i32.const 4)
- (i32.const 5)
- )
- (loop $out $in
- (i32.const 0)
- )
- (loop $in2
- (i32.const 0)
- )
- (loop
- (i32.const 0)
- )
- (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)
- )
- (i32.eqz
- (call "$kitchen()sinker"
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (drop
+ (block $the-value
+ (drop
+ (i32.clz
+ (i32.const -10)
+ )
)
- )
- (i32.eqz
- (i32.trunc_s/f32
- (call_import $an-imported
- (i32.const 13)
- (f64.const 3.7)
+ (drop
+ (i64.ctz
+ (i64.const -22)
)
)
- )
- (i32.eqz
- (call_indirect $iiIfF
- (i32.const 2449)
- (i32.const 13)
- (i64.const 37)
- (f32.const 1.2999999523162842)
- (f64.const 3.7)
+ (drop
+ (i32.popcnt
+ (i32.const -10)
+ )
)
+ (drop
+ (f32.neg
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.abs
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (f32.ceil
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.floor
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (f32.trunc
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.nearest
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f64.sqrt
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i32.eqz
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i64.extend_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.wrap/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_s/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.trunc_u/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i32.trunc_s/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i64.trunc_s/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i32.trunc_u/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i64.trunc_u/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (i32.reinterpret/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (i64.reinterpret/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (f32.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_s/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.convert_u/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f32.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_s/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f32.convert_u/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.convert_u/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (f64.promote/f32
+ (f32.const -33.61199951171875)
+ )
+ )
+ (drop
+ (f32.demote/f64
+ (f64.const -9005.84)
+ )
+ )
+ (drop
+ (f32.reinterpret/i32
+ (i32.const -10)
+ )
+ )
+ (drop
+ (f64.reinterpret/i64
+ (i64.const -22)
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (f64.sub
+ (f64.const -9005.84)
+ (f64.const -9007.33)
+ )
+ )
+ (drop
+ (i32.div_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.div_u
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.rem_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.rem_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.or
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.shl
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.shr_u
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.shr_s
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i32.rotl
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.rotr
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (f32.div
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.copysign
+ (f64.const -9005.84)
+ (f64.const -9007.33)
+ )
+ )
+ (drop
+ (f32.min
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.max
+ (f64.const -9005.84)
+ (f64.const -9007.33)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i64.le_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (i32.le_u
+ (i32.const -10)
+ (i32.const -11)
+ )
+ )
+ (drop
+ (i64.gt_s
+ (i64.const -22)
+ (i64.const -23)
+ )
+ )
+ (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 -22)
+ (i64.const -23)
+ )
+ )
+ (drop
+ (f32.lt
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (drop
+ (f64.le
+ (f64.const -9005.84)
+ (f64.const -9007.33)
+ )
+ )
+ (drop
+ (f64.gt
+ (f64.const -9005.84)
+ (f64.const -9007.33)
+ )
+ )
+ (drop
+ (f32.ge
+ (f32.const -33.61199951171875)
+ (f32.const -62.5)
+ )
+ )
+ (block
+ )
+ (drop
+ (if
+ (i32.const 1)
+ (i32.const 2)
+ (i32.const 3)
+ )
+ )
+ (if
+ (i32.const 4)
+ (i32.const 5)
+ )
+ (drop
+ (loop $out $in
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop $in2
+ (i32.const 0)
+ )
+ )
+ (drop
+ (loop
+ (i32.const 0)
+ )
+ )
+ (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_s/f32
+ (call_import $an-imported
+ (i32.const 13)
+ (f64.const 3.7)
+ )
+ )
+ )
+ )
+ (drop
+ (i32.eqz
+ (call_indirect $iiIfF
+ (i32.const 2449)
+ (i32.const 13)
+ (i64.const 37)
+ (f32.const 1.2999999523162842)
+ (f64.const 3.7)
+ )
+ )
+ )
+ (drop
+ (get_local $0)
+ )
+ (set_local $0
+ (i32.const 101)
+ )
+ (drop
+ (tee_local $0
+ (i32.const 102)
+ )
+ )
+ (drop
+ (i32.load
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i64.load8_s offset=2 align=4
+ (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)
+ )
+ (nop)
+ (unreachable)
)
- (get_local $0)
- (set_local $0
- (i32.const 101)
- )
- (i32.load
- (i32.const 1)
- )
- (i64.load8_s offset=2 align=4
- (i32.const 8)
- )
- (f32.load
- (i32.const 2)
- )
- (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)
- )
- (select
- (i32.const 3)
- (i32.const 5)
- (i32.const 1)
- )
- (return
- (i32.const 1337)
- )
- (nop)
- (unreachable)
)
)
(i32.const 42)
@@ -396,7 +565,9 @@
(i32.const 0)
)
(block
- (i32.const 77)
+ (drop
+ (i32.const 77)
+ )
(br $block$2$break)
)
)
@@ -435,7 +606,9 @@
(i32.const 0)
)
(block
- (i32.const 33)
+ (drop
+ (i32.const 33)
+ )
(br $block$2$break)
)
)
@@ -444,7 +617,9 @@
(i32.const 1)
)
(block
- (i32.const -66)
+ (drop
+ (i32.const -66)
+ )
(br $shape$0$continue)
)
)
@@ -477,7 +652,9 @@
(if
(i32.const 55)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(block
(call_import $check
(i32.const 1)
@@ -485,7 +662,9 @@
)
)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(block
(call_import $check
(i32.const 2)
@@ -528,19 +707,25 @@
(if
(i32.const 55)
(block
- (i32.const -1)
+ (drop
+ (i32.const -1)
+ )
(block
(call_import $check
(i32.const 1)
)
(block
- (i32.const -3)
+ (drop
+ (i32.const -3)
+ )
(br $block$3$break)
)
)
)
(block
- (i32.const -2)
+ (drop
+ (i32.const -2)
+ )
(br $block$3$break)
)
)
@@ -620,7 +805,9 @@
(i32.const 0)
)
(block
- (i32.const 10)
+ (drop
+ (i32.const 10)
+ )
(br $block$2$break)
)
)
@@ -636,7 +823,9 @@
(i32.const -2)
(br $block$3$break)
(block
- (i32.const 20)
+ (drop
+ (i32.const 20)
+ )
(br $block$7$break)
)
)
@@ -649,7 +838,9 @@
(i32.const -6)
(br $block$4$break)
(block
- (i32.const 30)
+ (drop
+ (i32.const 30)
+ )
(br $shape$1$continue)
)
)
@@ -679,7 +870,9 @@
(i32.const 5)
)
(block
- (i32.const 40)
+ (drop
+ (i32.const 40)
+ )
(br $block$7$break)
)
)
@@ -715,7 +908,9 @@
(br $switch$1$leave)
)
(block
- (i32.const 55)
+ (drop
+ (i32.const 55)
+ )
(block
(call_import $check
(i32.const 2)
diff --git a/test/example/relooper-fuzz.c b/test/example/relooper-fuzz.c
index 65d00aa5d..9fd11096f 100644
--- a/test/example/relooper-fuzz.c
+++ b/test/example/relooper-fuzz.c
@@ -31,7 +31,8 @@ int main() {
BinaryenAddInt32(),
BinaryenLoad(module, 4, 0, 0, 0, BinaryenInt32(), BinaryenConst(module, BinaryenLiteralInt32(4))),
BinaryenConst(module, BinaryenLiteralInt32(4))
- )
+ ),
+ BinaryenInt32()
);
// optionally, print the return value
@@ -235,7 +236,8 @@ int main() {
full[i] = BinaryenStore(module,
4, 0, 0,
BinaryenConst(module, BinaryenLiteralInt32(8 + 4 * i)),
- BinaryenConst(module, BinaryenLiteralInt32(decisions[i]))
+ BinaryenConst(module, BinaryenLiteralInt32(decisions[i])),
+ BinaryenInt32()
);
}
}
diff --git a/test/example/relooper-fuzz.txt b/test/example/relooper-fuzz.txt
index b4e6c8b57..2836a05de 100644
--- a/test/example/relooper-fuzz.txt
+++ b/test/example/relooper-fuzz.txt
@@ -463,7 +463,9 @@
(call_import $print
(i32.const 8)
)
- (call $check)
+ (drop
+ (call $check)
+ )
)
)
(loop $shape$3$continue
@@ -503,7 +505,7 @@
(if
(i32.eq
(i32.rem_u
- (set_local $1
+ (tee_local $1
(call $check)
)
(i32.const 3)
@@ -530,7 +532,9 @@
(call_import $print
(i32.const 2)
)
- (call $check)
+ (drop
+ (call $check)
+ )
(set_local $0
(i32.const 6)
)
diff --git a/test/example/relooper-fuzz1.c b/test/example/relooper-fuzz1.c
index fbbbfdd59..cca61e4f4 100644
--- a/test/example/relooper-fuzz1.c
+++ b/test/example/relooper-fuzz1.c
@@ -33,7 +33,8 @@ int main() {
BinaryenLoad(module, 4, 0, 0, 0, BinaryenInt32(),
BinaryenConst(module, BinaryenLiteralInt32(4))),
BinaryenConst(module, BinaryenLiteralInt32(4))
- )
+ ),
+ BinaryenInt32()
);
// optionally, print the return value
@@ -288,7 +289,8 @@ int main() {
full[i] = BinaryenStore(module,
4, 0, 0,
BinaryenConst(module, BinaryenLiteralInt32(8 + 4 * i)),
- BinaryenConst(module, BinaryenLiteralInt32(decisions[i]))
+ BinaryenConst(module, BinaryenLiteralInt32(decisions[i])),
+ BinaryenInt32()
);
}
}
diff --git a/test/example/relooper-fuzz1.txt b/test/example/relooper-fuzz1.txt
index 437dab062..32456c82a 100644
--- a/test/example/relooper-fuzz1.txt
+++ b/test/example/relooper-fuzz1.txt
@@ -440,7 +440,7 @@
(if
(i32.ne
(i32.rem_u
- (set_local $0
+ (tee_local $0
(call $check)
)
(i32.const 4)
@@ -489,13 +489,17 @@
(call_import $print
(i32.const 3)
)
- (call $check)
+ (drop
+ (call $check)
+ )
(br $shape$6$continue)
)
)
(call_import $print
(i32.const 9)
)
- (call $check)
+ (drop
+ (call $check)
+ )
)
)