summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pass.h5
-rw-r--r--src/passes/Inlining.cpp3
-rw-r--r--src/tools/optimization-options.h10
-rw-r--r--test/example/c-api-kitchen-sink.c3
-rw-r--r--test/lit/help/optimization-opts.test5
-rw-r--r--test/lit/passes/inlining-optimizing_optimize-level=3.wast1201
-rw-r--r--test/lit/passes/inlining_splitting.wast2
7 files changed, 601 insertions, 628 deletions
diff --git a/src/pass.h b/src/pass.h
index 802a34ab5..2bb34aeea 100644
--- a/src/pass.h
+++ b/src/pass.h
@@ -82,6 +82,11 @@ struct InliningOptions {
// Loops usually mean the function does heavy work, so the call overhead
// is not significant and we do not inline such functions by default.
bool allowFunctionsWithLoops = false;
+ // The number of ifs to allow partial inlining of their conditions. A value of
+ // zero disables partial inlining.
+ // TODO: Investigate enabling this. Locally 4 appears useful on real-world
+ // code, but reports of regressions have arrived.
+ Index partialInliningIfs = 0;
};
struct PassOptions {
diff --git a/src/passes/Inlining.cpp b/src/passes/Inlining.cpp
index e1ae4c2a8..7467d2559 100644
--- a/src/passes/Inlining.cpp
+++ b/src/passes/Inlining.cpp
@@ -641,8 +641,7 @@ private:
// without an else.
// Find the number of ifs.
- // TODO: Investigate more values here. 4 appears useful on real-world code.
- const Index MaxIfs = 4;
+ const Index MaxIfs = options.inlining.partialInliningIfs;
Index numIfs = 0;
while (getIf(body, numIfs) && numIfs <= MaxIfs) {
numIfs++;
diff --git a/src/tools/optimization-options.h b/src/tools/optimization-options.h
index 58a8e3980..8d526f92f 100644
--- a/src/tools/optimization-options.h
+++ b/src/tools/optimization-options.h
@@ -171,6 +171,16 @@ struct OptimizationOptions : public ToolOptions {
[this](Options* o, const std::string&) {
passOptions.inlining.allowFunctionsWithLoops = true;
})
+ .add("--partial-inlining-ifs",
+ "-pii",
+ "Number of ifs allowed in partial inlining (zero means partial "
+ "inlining is disabled) (default: " +
+ std::to_string(InliningOptions().partialInliningIfs) + ')',
+ Options::Arguments::One,
+ [this](Options* o, const std::string& argument) {
+ passOptions.inlining.partialInliningIfs =
+ static_cast<Index>(std::stoi(argument));
+ })
.add("--ignore-implicit-traps",
"-iit",
"Optimize under the helpful assumption that no surprising traps "
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index f493914aa..67a3a7b26 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -263,8 +263,7 @@ void test_features() {
printf("BinaryenFeatureMemory64: %d\n", BinaryenFeatureMemory64());
printf("BinaryenFeatureTypedFunctionReferences: %d\n",
BinaryenFeatureTypedFunctionReferences());
- printf("BinaryenFeatureRelaxedSIMD: %d\n",
- BinaryenFeatureRelaxedSIMD());
+ printf("BinaryenFeatureRelaxedSIMD: %d\n", BinaryenFeatureRelaxedSIMD());
printf("BinaryenFeatureAll: %d\n", BinaryenFeatureAll());
}
diff --git a/test/lit/help/optimization-opts.test b/test/lit/help/optimization-opts.test
index 75e1d72a3..22a730128 100644
--- a/test/lit/help/optimization-opts.test
+++ b/test/lit/help/optimization-opts.test
@@ -160,6 +160,11 @@
;; CHECK-NEXT: --inline-functions-with-loops,-ifwl Allow inlining functions with
;; CHECK-NEXT: loops
;; CHECK-NEXT:
+;; CHECK-NEXT: --partial-inlining-ifs,-pii Number of ifs allowed in partial
+;; CHECK-NEXT: inlining (zero means partial
+;; CHECK-NEXT: inlining is disabled) (default:
+;; CHECK-NEXT: 0)
+;; CHECK-NEXT:
;; CHECK-NEXT: --ignore-implicit-traps,-iit Optimize under the helpful
;; CHECK-NEXT: assumption that no surprising
;; CHECK-NEXT: traps occur (from load, div/mod,
diff --git a/test/lit/passes/inlining-optimizing_optimize-level=3.wast b/test/lit/passes/inlining-optimizing_optimize-level=3.wast
index 47fe69553..4a4f21f94 100644
--- a/test/lit/passes/inlining-optimizing_optimize-level=3.wast
+++ b/test/lit/passes/inlining-optimizing_optimize-level=3.wast
@@ -25,12 +25,12 @@
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
- ;; CHECK: (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
-
;; CHECK: (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32)))
;; CHECK: (type $f64_i32_=>_f64 (func (param f64 i32) (result f64)))
+ ;; CHECK: (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
+
;; CHECK: (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32)))
;; CHECK: (import "env" "memory" (memory $0 256 256))
@@ -4065,8 +4065,8 @@
;; CHECK-NEXT: (local $21 i32)
;; CHECK-NEXT: (local $22 i32)
;; CHECK-NEXT: (local $23 i32)
- ;; CHECK-NEXT: (local $24 i32)
- ;; CHECK-NEXT: (local $25 f64)
+ ;; CHECK-NEXT: (local $24 f64)
+ ;; CHECK-NEXT: (local $25 i32)
;; CHECK-NEXT: (local $26 i32)
;; CHECK-NEXT: (local $27 i32)
;; CHECK-NEXT: (local $28 i32)
@@ -4108,26 +4108,26 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $abort)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $22
+ ;; CHECK-NEXT: (local.set $21
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: (i32.const 16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $34
+ ;; CHECK-NEXT: (local.set $33
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: (i32.const 528)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $29
+ ;; CHECK-NEXT: (local.set $28
;; CHECK-NEXT: (i32.ne
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $37
- ;; CHECK-NEXT: (local.tee $23
+ ;; CHECK-NEXT: (local.tee $25
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (i32.add
@@ -4156,7 +4156,7 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $20
+ ;; CHECK-NEXT: (local.set $22
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (i32.add
@@ -4175,9 +4175,9 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $43
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: (local.tee $35
- ;; CHECK-NEXT: (local.tee $24
+ ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.tee $34
+ ;; CHECK-NEXT: (local.tee $23
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: (i32.const 588)
@@ -4189,12 +4189,12 @@
;; CHECK-NEXT: (local.set $44
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.const -2)
- ;; CHECK-NEXT: (local.get $35)
+ ;; CHECK-NEXT: (local.get $34)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $45
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -4210,16 +4210,16 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $41
- ;; CHECK-NEXT: (local.tee $26
+ ;; CHECK-NEXT: (local.tee $29
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: (i32.const 9)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $33
+ ;; CHECK-NEXT: (local.set $32
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: (i32.const 8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -4352,7 +4352,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $29)
+ ;; CHECK-NEXT: (local.get $28)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.and
@@ -4386,7 +4386,7 @@
;; CHECK-NEXT: (br $label$continue$L1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.lt_u
;; CHECK-NEXT: (local.tee $8
@@ -4428,7 +4428,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $19
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (i32.const -1)
@@ -4445,7 +4445,7 @@
;; CHECK-NEXT: (local.set $6
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $19
;; CHECK-NEXT: (i32.const -1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $1)
@@ -4619,7 +4619,7 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
@@ -4632,7 +4632,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $18
;; CHECK-NEXT: (i32.const -1)
@@ -4642,7 +4642,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $29)
+ ;; CHECK-NEXT: (local.get $28)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $9
@@ -4651,7 +4651,7 @@
;; CHECK-NEXT: (local.set $11
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $do-once5
@@ -4659,7 +4659,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.tee $11
;; CHECK-NEXT: (i32.and
@@ -4690,14 +4690,14 @@
;; CHECK-NEXT: (local.set $9
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.or
@@ -4742,7 +4742,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.lt_u
- ;; CHECK-NEXT: (local.tee $8
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.load8_s
;; CHECK-NEXT: (local.tee $11
@@ -4762,7 +4762,7 @@
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $6
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $while-in8)
;; CHECK-NEXT: )
@@ -4783,10 +4783,10 @@
;; CHECK-NEXT: (local.set $9
;; CHECK-NEXT: (local.get $1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -4794,10 +4794,10 @@
;; CHECK-NEXT: (local.set $9
;; CHECK-NEXT: (local.get $1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.set $17
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -4967,7 +4967,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (local.get $29)
+ ;; CHECK-NEXT: (local.get $28)
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.load
@@ -5010,13 +5010,13 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (local.get $11)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in13
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.gt_u
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.load8_s
;; CHECK-NEXT: (local.get $8)
@@ -5042,19 +5042,19 @@
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.lt_u
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.tee $15
;; CHECK-NEXT: (i32.load8_s
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.mul
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 58)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 3611)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -5069,8 +5069,8 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (local.get $11)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $while-in13)
;; CHECK-NEXT: )
@@ -5090,9 +5090,9 @@
;; CHECK-NEXT: (br $label$break$L1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.gt_s
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (i32.const -1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -5107,7 +5107,7 @@
;; CHECK-NEXT: (i32.const 19)
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $18
;; CHECK-NEXT: (i32.const -1)
@@ -5118,25 +5118,25 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (i32.store
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $4)
;; CHECK-NEXT: (i32.shl
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $15
;; CHECK-NEXT: (i32.load offset=4
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $3)
;; CHECK-NEXT: (i32.shl
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -5146,7 +5146,7 @@
;; CHECK-NEXT: (i32.store
;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store offset=4
@@ -5158,7 +5158,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $29)
+ ;; CHECK-NEXT: (local.get $28)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $18
@@ -5169,7 +5169,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $_pop_arg_336
;; CHECK-NEXT: (local.get $13)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (local.get $2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -5178,7 +5178,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $29)
+ ;; CHECK-NEXT: (local.get $28)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $5
@@ -5193,7 +5193,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $9
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: (i32.const -65537)
@@ -5213,7 +5213,7 @@
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.tee $15
;; CHECK-NEXT: (i32.sub
@@ -5222,7 +5222,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (block $__rjti$7 (result i32)
;; CHECK-NEXT: (block $__rjti$6
@@ -5264,7 +5264,7 @@
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -5283,7 +5283,7 @@
;; CHECK-NEXT: (block $switch-case20
;; CHECK-NEXT: (block $switch-case19
;; CHECK-NEXT: (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
@@ -5463,7 +5463,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in32
;; CHECK-NEXT: (i32.store8
@@ -5498,7 +5498,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
@@ -5506,27 +5506,32 @@
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: (i32.const 8)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $6
- ;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.tee $5
- ;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $37)
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $7
+ ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $6
+ ;; CHECK-NEXT: (select
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (i32.add
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $37)
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (i32.gt_s
- ;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (local.get $6)
+ ;; CHECK-NEXT: (i32.gt_s
+ ;; CHECK-NEXT: (local.get $5)
+ ;; CHECK-NEXT: (local.get $6)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $7
- ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: (local.set $7
+ ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (local.get $8)
@@ -5534,7 +5539,7 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjti$8)
@@ -5584,13 +5589,13 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjti$4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $9)
@@ -5634,7 +5639,7 @@
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjti$4)
@@ -5654,19 +5659,19 @@
;; CHECK-NEXT: (local.get $38)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $9
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjto$8
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
@@ -5801,7 +5806,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: )
@@ -5817,7 +5822,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (f64.store
@@ -5905,11 +5910,11 @@
;; CHECK-NEXT: (if
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (f64.ne
- ;; CHECK-NEXT: (local.tee $25
+ ;; CHECK-NEXT: (local.tee $24
;; CHECK-NEXT: (f64.mul
;; CHECK-NEXT: (call $_frexp
;; CHECK-NEXT: (local.get $14)
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
;; CHECK-NEXT: (f64.const 2)
;; CHECK-NEXT: )
@@ -5918,10 +5923,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
@@ -5929,7 +5934,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.tee $21
+ ;; CHECK-NEXT: (local.tee $26
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: (i32.const 32)
@@ -5945,7 +5950,7 @@
;; CHECK-NEXT: (i32.const 9)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $30)
- ;; CHECK-NEXT: (local.tee $19
+ ;; CHECK-NEXT: (local.tee $16
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: (i32.const 32)
@@ -5969,7 +5974,7 @@
;; CHECK-NEXT: (i32.const 11)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: (block (result f64)
;; CHECK-NEXT: (local.set $14
;; CHECK-NEXT: (f64.const 8)
@@ -5996,7 +6001,7 @@
;; CHECK-NEXT: (local.get $14)
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.neg
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $14)
;; CHECK-NEXT: )
@@ -6004,7 +6009,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (f64.sub
;; CHECK-NEXT: (f64.add
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: (local.get $14)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $14)
@@ -6026,59 +6031,40 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (local.tee $8
- ;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.tee $7
- ;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (i32.eq
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (call $_fmt_u
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (select
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (local.tee $7
+ ;; CHECK-NEXT: (i32.load
+ ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (i32.lt_s
+ ;; CHECK-NEXT: (local.get $7)
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.tee $8
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (i32.shl
;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 31)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 31)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.tee $5
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (i32.store8
@@ -6124,7 +6110,7 @@
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $20
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $9)
@@ -6133,7 +6119,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in56
;; CHECK-NEXT: (i32.store8
@@ -6170,7 +6156,7 @@
;; CHECK-NEXT: (i32.const 4075)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $14
@@ -6194,13 +6180,13 @@
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $35)
+ ;; CHECK-NEXT: (local.get $34)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: (f64.eq
@@ -6234,7 +6220,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $6
@@ -6293,7 +6279,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 48)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.xor
;; CHECK-NEXT: (local.get $9)
@@ -6303,7 +6289,7 @@
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $35)
+ ;; CHECK-NEXT: (local.get $34)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
@@ -6317,7 +6303,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $___fwritex
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
@@ -6332,7 +6318,7 @@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (local.tee $6
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6361,7 +6347,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.xor
;; CHECK-NEXT: (local.get $9)
@@ -6370,11 +6356,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $do-once49
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6385,28 +6371,28 @@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (block (result f64)
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 28)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (f64.mul
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: (f64.const 268435456)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result f64)
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6477,9 +6463,9 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.gt_s
- ;; CHECK-NEXT: (local.tee $12
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
@@ -6489,19 +6475,19 @@
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in62
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 29)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.gt_s
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 29)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.ge_u
- ;; CHECK-NEXT: (local.tee $12
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.const 4)
@@ -6510,58 +6496,58 @@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once63
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in66
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (call $___uremdi3
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (global.set $tempRet0
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.gt_u
- ;; CHECK-NEXT: (local.tee $17
+ ;; CHECK-NEXT: (local.tee $20
;; CHECK-NEXT: (call $_bitshift64Shl
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (global.get $tempRet0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.tee $17
+ ;; CHECK-NEXT: (local.tee $20
;; CHECK-NEXT: (global.get $tempRet0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 1000000000)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (call $___udivdi3
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (i32.const 1000000000)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $while-in66
;; CHECK-NEXT: (i32.ge_u
- ;; CHECK-NEXT: (local.tee $12
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6571,7 +6557,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $do-once63
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
@@ -6581,7 +6567,7 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6612,19 +6598,19 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $22)
- ;; CHECK-NEXT: (local.tee $12
+ ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $while-in62
;; CHECK-NEXT: (i32.gt_s
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6634,7 +6620,7 @@
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $19
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 6)
;; CHECK-NEXT: (local.get $6)
@@ -6646,15 +6632,15 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $20
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.div_s
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (i32.const 25)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 9)
@@ -6662,9 +6648,9 @@
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $28
+ ;; CHECK-NEXT: (local.set $31
;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: (i32.const 102)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6676,13 +6662,13 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (loop $while-in70 (result i32)
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 9)
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
@@ -6697,22 +6683,22 @@
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once71
- ;; CHECK-NEXT: (local.set $31
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.shl
;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $36
+ ;; CHECK-NEXT: (local.set $35
;; CHECK-NEXT: (i32.shr_u
;; CHECK-NEXT: (i32.const 1000000000)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $7
@@ -6722,24 +6708,24 @@
;; CHECK-NEXT: (i32.store
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.shr_u
- ;; CHECK-NEXT: (local.tee $32
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $31)
- ;; CHECK-NEXT: (local.get $32)
+ ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $36)
+ ;; CHECK-NEXT: (local.get $35)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $while-in74
@@ -6768,12 +6754,12 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $do-once71
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
;; CHECK-NEXT: (i32.add
@@ -6795,18 +6781,18 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $6
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $28)
+ ;; CHECK-NEXT: (local.get $31)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.shl
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6819,35 +6805,38 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
- ;; CHECK-NEXT: (local.get $22)
- ;; CHECK-NEXT: (local.tee $12
+ ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $6
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: (br $while-in70)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $12
- ;; CHECK-NEXT: (local.get $5)
+ ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
@@ -6855,24 +6844,24 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $20
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.lt_u
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once75
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
@@ -6923,12 +6912,12 @@
;; CHECK-NEXT: (local.tee $6
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: (i32.const 102)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6938,13 +6927,13 @@
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.tee $31
;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.tee $36
+ ;; CHECK-NEXT: (local.tee $35
;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: (i32.const 103)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -6959,8 +6948,8 @@
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $12)
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
@@ -6995,13 +6984,13 @@
;; CHECK-NEXT: (i32.const 9)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in80
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.mul
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7018,17 +7007,17 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (local.tee $21
+ ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (local.tee $8
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.tee $6
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (i32.shl
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (i32.const 2)
@@ -7040,39 +7029,40 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $16
+ ;; CHECK-NEXT: (if (result i32)
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (i32.rem_u
+ ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.tee $28
+ ;; CHECK-NEXT: (local.tee $26
;; CHECK-NEXT: (i32.eq
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.tee $8
- ;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: (i32.rem_u
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once81
- ;; CHECK-NEXT: (local.set $32
+ ;; CHECK-NEXT: (local.set $36
;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.div_u
- ;; CHECK-NEXT: (local.get $21)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -7080,10 +7070,10 @@
;; CHECK-NEXT: (local.set $14
;; CHECK-NEXT: (if (result f64)
;; CHECK-NEXT: (i32.lt_u
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: (local.tee $48
;; CHECK-NEXT: (i32.div_s
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7093,21 +7083,21 @@
;; CHECK-NEXT: (f64.const 1)
;; CHECK-NEXT: (f64.const 1.5)
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $28)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: (local.get $48)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $25
+ ;; CHECK-NEXT: (local.set $24
;; CHECK-NEXT: (select
;; CHECK-NEXT: (f64.const 9007199254740994)
;; CHECK-NEXT: (f64.const 9007199254740992)
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $32)
+ ;; CHECK-NEXT: (local.get $36)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7122,9 +7112,9 @@
;; CHECK-NEXT: (i32.const 45)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (local.set $25
+ ;; CHECK-NEXT: (local.set $24
;; CHECK-NEXT: (f64.neg
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $14
@@ -7139,18 +7129,18 @@
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: (local.tee $8
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $21)
;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $do-once81
;; CHECK-NEXT: (f64.eq
;; CHECK-NEXT: (f64.add
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: (local.get $14)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store
@@ -7158,7 +7148,7 @@
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7215,7 +7205,7 @@
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
@@ -7233,7 +7223,7 @@
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in88
@@ -7246,9 +7236,9 @@
;; CHECK-NEXT: (br_if $while-in88
;; CHECK-NEXT: (i32.ge_u
;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.mul
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.const 10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7257,7 +7247,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
@@ -7270,40 +7260,40 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.lt_u
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $32
+ ;; CHECK-NEXT: (local.set $36
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (loop $while-in90 (result i32)
;; CHECK-NEXT: (block $while-out89 (result i32)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.le_u
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
- ;; CHECK-NEXT: (local.set $28
+ ;; CHECK-NEXT: (local.set $26
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $while-out89
@@ -7321,7 +7311,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $28
+ ;; CHECK-NEXT: (local.set $26
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $5)
@@ -7339,14 +7329,14 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.tee $8
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (local.get $36)
+ ;; CHECK-NEXT: (local.get $35)
;; CHECK-NEXT: (block $do-once91 (result i32)
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (if (result i32)
@@ -7357,7 +7347,7 @@
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (local.get $31)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $8)
@@ -7368,7 +7358,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $19
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $5)
@@ -7383,7 +7373,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $19
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (i32.const 1)
@@ -7398,8 +7388,8 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (br_if $do-once91
- ;; CHECK-NEXT: (local.get $17)
- ;; CHECK-NEXT: (local.tee $21
+ ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.tee $16
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: (i32.const 8)
@@ -7408,14 +7398,14 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $28)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: (block $do-once93
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (local.tee $15
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7458,7 +7448,7 @@
;; CHECK-NEXT: (br_if $while-in96
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (local.tee $21
+ ;; CHECK-NEXT: (local.tee $16
;; CHECK-NEXT: (local.tee $6
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (local.get $6)
@@ -7468,7 +7458,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.rem_u
;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -7485,8 +7475,8 @@
;; CHECK-NEXT: (i32.mul
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $12)
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
@@ -7504,11 +7494,11 @@
;; CHECK-NEXT: (i32.const 102)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $21
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 0)
@@ -7526,16 +7516,16 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $21
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (select
;; CHECK-NEXT: (i32.const 0)
@@ -7556,14 +7546,14 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $21
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: (i32.const 8)
@@ -7572,7 +7562,7 @@
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7582,10 +7572,10 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.tee $17
+ ;; CHECK-NEXT: (local.tee $19
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
@@ -7616,55 +7606,36 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $6
- ;; CHECK-NEXT: (local.tee $15
- ;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $32)
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (i32.lt_s
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $22)
+ ;; CHECK-NEXT: (local.tee $6
+ ;; CHECK-NEXT: (call $_fmt_u
+ ;; CHECK-NEXT: (local.tee $6
+ ;; CHECK-NEXT: (select
+ ;; CHECK-NEXT: (local.get $36)
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (i32.lt_s
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.tee $15
- ;; CHECK-NEXT: (i32.shr_s
- ;; CHECK-NEXT: (i32.shl
- ;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: (i32.shr_s
+ ;; CHECK-NEXT: (i32.shl
+ ;; CHECK-NEXT: (i32.lt_s
+ ;; CHECK-NEXT: (local.get $6)
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 31)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 31)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 31)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u
- ;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
- ;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
- ;; CHECK-NEXT: (local.tee $6
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 2)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in98
;; CHECK-NEXT: (i32.store8
@@ -7679,7 +7650,7 @@
;; CHECK-NEXT: (br_if $while-in98
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 2)
@@ -7713,7 +7684,7 @@
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7742,7 +7713,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 48)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (i32.xor
;; CHECK-NEXT: (local.get $9)
@@ -7753,59 +7724,53 @@
;; CHECK-NEXT: (local.get $31)
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $6
- ;; CHECK-NEXT: (local.tee $10
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $19)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.gt_u
- ;; CHECK-NEXT: (local.get $10)
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in102
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.tee $7
+ ;; CHECK-NEXT: (local.set $7
+ ;; CHECK-NEXT: (call $_fmt_u
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
- ;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $26)
+ ;; CHECK-NEXT: (local.get $29)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $7
- ;; CHECK-NEXT: (local.get $26)
- ;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once103
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eq
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (br_if $do-once103
;; CHECK-NEXT: (i32.ne
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $26)
+ ;; CHECK-NEXT: (local.get $29)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.store8
- ;; CHECK-NEXT: (local.get $33)
+ ;; CHECK-NEXT: (local.get $32)
;; CHECK-NEXT: (i32.const 48)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $7
- ;; CHECK-NEXT: (local.get $33)
+ ;; CHECK-NEXT: (local.get $32)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (br_if $do-once103
;; CHECK-NEXT: (i32.le_u
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in106
@@ -7821,7 +7786,7 @@
;; CHECK-NEXT: (br_if $while-in106
;; CHECK-NEXT: (i32.gt_u
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7856,7 +7821,7 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (local.set $6
@@ -7867,7 +7832,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $19)
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (i32.and
@@ -7894,7 +7859,7 @@
;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (i32.lt_u
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $5)
@@ -7903,25 +7868,17 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in110 (result i32)
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.tee $6
+ ;; CHECK-NEXT: (i32.gt_u
+ ;; CHECK-NEXT: (local.tee $6
+ ;; CHECK-NEXT: (call $_fmt_u
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
- ;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $26)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.gt_u
- ;; CHECK-NEXT: (local.tee $6
- ;; CHECK-NEXT: (local.get $26)
+ ;; CHECK-NEXT: (local.get $29)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $24)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in112
;; CHECK-NEXT: (i32.store8
@@ -7936,7 +7893,7 @@
;; CHECK-NEXT: (br_if $while-in112
;; CHECK-NEXT: (i32.gt_u
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -7980,7 +7937,7 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $5)
@@ -8005,14 +7962,14 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block $do-once99
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $20
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $28)
+ ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $_pad
@@ -8025,46 +7982,38 @@
;; CHECK-NEXT: (i32.const -1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $17
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $21)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $6
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in114 (result i32)
;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (i32.eq
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (call $_fmt_u
;; CHECK-NEXT: (i32.load
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
- ;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (i32.const 0)
- ;; CHECK-NEXT: (local.get $26)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.eq
- ;; CHECK-NEXT: (local.tee $5
- ;; CHECK-NEXT: (local.get $26)
+ ;; CHECK-NEXT: (local.get $29)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $26)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $29)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (i32.store8
- ;; CHECK-NEXT: (local.get $33)
+ ;; CHECK-NEXT: (local.get $32)
;; CHECK-NEXT: (i32.const 48)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (local.get $33)
+ ;; CHECK-NEXT: (local.get $32)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8072,7 +8021,7 @@
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eq
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block
;; CHECK-NEXT: (if
@@ -8100,7 +8049,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $do-once115
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $17)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.const 1)
@@ -8127,7 +8076,7 @@
;; CHECK-NEXT: (br_if $do-once115
;; CHECK-NEXT: (i32.le_u
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (loop $while-in118
@@ -8143,14 +8092,14 @@
;; CHECK-NEXT: (br_if $while-in118
;; CHECK-NEXT: (i32.gt_u
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $24)
+ ;; CHECK-NEXT: (local.get $23)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $41)
;; CHECK-NEXT: (local.get $5)
@@ -8169,11 +8118,11 @@
;; CHECK-NEXT: (call $___fwritex
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $0)
@@ -8189,13 +8138,13 @@
;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $20)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const -1)
@@ -8224,7 +8173,7 @@
;; CHECK-NEXT: (call $___fwritex
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $20)
+ ;; CHECK-NEXT: (local.get $22)
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $0)
@@ -8235,7 +8184,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (i32.xor
;; CHECK-NEXT: (local.get $9)
@@ -8243,11 +8192,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8255,7 +8204,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $8
@@ -8273,7 +8222,7 @@
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.eqz
@@ -8342,7 +8291,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.xor
;; CHECK-NEXT: (local.get $9)
@@ -8350,11 +8299,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8371,17 +8320,17 @@
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjto$8
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $10
@@ -8390,63 +8339,63 @@
;; CHECK-NEXT: (i32.const 32)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (if (result i32)
- ;; CHECK-NEXT: (i32.or
- ;; CHECK-NEXT: (local.tee $5
- ;; CHECK-NEXT: (i32.load
- ;; CHECK-NEXT: (local.get $13)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.tee $9
- ;; CHECK-NEXT: (i32.load offset=4
- ;; CHECK-NEXT: (local.get $13)
- ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (i32.or
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (i32.load
+ ;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $8
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.tee $9
+ ;; CHECK-NEXT: (i32.load offset=4
+ ;; CHECK-NEXT: (local.get $13)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (loop $while-in123 (result i32)
- ;; CHECK-NEXT: (i32.store8
- ;; CHECK-NEXT: (local.tee $8
- ;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (i32.const 1)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.or
- ;; CHECK-NEXT: (i32.load8_u
- ;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (i32.const 15)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 4075)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $8
+ ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: (loop $while-in123 (result i32)
+ ;; CHECK-NEXT: (i32.store8
+ ;; CHECK-NEXT: (local.tee $8
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (br_if $while-in123
- ;; CHECK-NEXT: (i32.or
- ;; CHECK-NEXT: (local.tee $5
- ;; CHECK-NEXT: (call $_bitshift64Lshr
+ ;; CHECK-NEXT: (i32.or
+ ;; CHECK-NEXT: (i32.load8_u
+ ;; CHECK-NEXT: (i32.add
+ ;; CHECK-NEXT: (i32.and
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $9)
- ;; CHECK-NEXT: (i32.const 4)
+ ;; CHECK-NEXT: (i32.const 15)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 4075)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.tee $9
- ;; CHECK-NEXT: (global.get $tempRet0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (br_if $while-in123
+ ;; CHECK-NEXT: (i32.or
+ ;; CHECK-NEXT: (local.tee $5
+ ;; CHECK-NEXT: (call $_bitshift64Lshr
+ ;; CHECK-NEXT: (local.get $5)
+ ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: (i32.const 4)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.tee $9
+ ;; CHECK-NEXT: (global.get $tempRet0)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.eqz
@@ -8467,13 +8416,13 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.shr_s
;; CHECK-NEXT: (local.get $15)
@@ -8486,38 +8435,28 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (block (result i32)
- ;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (local.get $23)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
- ;; CHECK-NEXT: (i32.const 4091)
- ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: (local.get $25)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (i32.const 4091)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjti$8)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $23)
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (if
- ;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (call $byn-split-outlined-B$_fmt_u_0
+ ;; CHECK-NEXT: (local.set $5
+ ;; CHECK-NEXT: (call $_fmt_u
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $5
- ;; CHECK-NEXT: (local.get $23)
- ;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $7
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: )
@@ -8527,7 +8466,7 @@
;; CHECK-NEXT: (block $__rjti$29
;; CHECK-NEXT: (if
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.tee $9
+ ;; CHECK-NEXT: (local.tee $10
;; CHECK-NEXT: (i32.ne
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (local.get $6)
@@ -8537,7 +8476,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.ne
;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.tee $8
+ ;; CHECK-NEXT: (local.tee $9
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 3)
@@ -8545,42 +8484,55 @@
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (loop $while-in12
- ;; CHECK-NEXT: (br_if $__rjti$29
- ;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (i32.load8_u
- ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $8
+ ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (loop $while-in12
+ ;; CHECK-NEXT: (br_if $__rjti$29
+ ;; CHECK-NEXT: (i32.eqz
+ ;; CHECK-NEXT: (i32.load8_u
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (br_if $while-in12
- ;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.tee $9
- ;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (local.tee $7
- ;; CHECK-NEXT: (i32.sub
- ;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (br_if $while-in12
+ ;; CHECK-NEXT: (i32.and
+ ;; CHECK-NEXT: (local.tee $9
+ ;; CHECK-NEXT: (i32.ne
+ ;; CHECK-NEXT: (local.tee $7
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $7)
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.ne
- ;; CHECK-NEXT: (i32.and
- ;; CHECK-NEXT: (local.tee $8
- ;; CHECK-NEXT: (i32.add
- ;; CHECK-NEXT: (local.get $8)
- ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: (i32.ne
+ ;; CHECK-NEXT: (i32.and
+ ;; CHECK-NEXT: (local.tee $8
+ ;; CHECK-NEXT: (i32.add
+ ;; CHECK-NEXT: (local.get $8)
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 3)
+ ;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $8
+ ;; CHECK-NEXT: (local.get $9)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $9
+ ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (br_if $__rjti$29
;; CHECK-NEXT: (local.get $9)
@@ -8692,7 +8644,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $19
+ ;; CHECK-NEXT: (local.set $16
;; CHECK-NEXT: (i32.eqz
;; CHECK-NEXT: (local.tee $15
;; CHECK-NEXT: (select
@@ -8704,9 +8656,9 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $9
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: (i32.sub
@@ -8715,13 +8667,13 @@
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $8
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $12
+ ;; CHECK-NEXT: (local.set $10
;; CHECK-NEXT: (i32.const 4091)
;; CHECK-NEXT: )
;; CHECK-NEXT: (br $__rjto$8
@@ -8731,7 +8683,7 @@
;; CHECK-NEXT: (local.get $6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $15)
- ;; CHECK-NEXT: (local.get $19)
+ ;; CHECK-NEXT: (local.get $16)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8762,7 +8714,7 @@
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.tee $7
;; CHECK-NEXT: (call $_wctomb
- ;; CHECK-NEXT: (local.get $34)
+ ;; CHECK-NEXT: (local.get $33)
;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8811,7 +8763,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 32)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $5)
;; CHECK-NEXT: (local.get $9)
;; CHECK-NEXT: )
@@ -8847,7 +8799,7 @@
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (local.tee $8
;; CHECK-NEXT: (call $_wctomb
- ;; CHECK-NEXT: (local.get $34)
+ ;; CHECK-NEXT: (local.get $33)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8869,7 +8821,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $___fwritex
- ;; CHECK-NEXT: (local.get $34)
+ ;; CHECK-NEXT: (local.get $33)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
@@ -8904,11 +8856,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.set $11
;; CHECK-NEXT: (select
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: (i32.lt_s
;; CHECK-NEXT: (local.get $7)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8927,11 +8879,11 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.set $10
+ ;; CHECK-NEXT: (local.set $12
;; CHECK-NEXT: (if (result i32)
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (local.get $6)
- ;; CHECK-NEXT: (local.tee $7
+ ;; CHECK-NEXT: (local.tee $12
;; CHECK-NEXT: (i32.or
;; CHECK-NEXT: (i32.ne
;; CHECK-NEXT: (i32.load
@@ -8953,7 +8905,7 @@
;; CHECK-NEXT: (local.tee $5
;; CHECK-NEXT: (i32.add
;; CHECK-NEXT: (i32.eqz
- ;; CHECK-NEXT: (local.get $7)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.sub
;; CHECK-NEXT: (local.get $37)
@@ -8970,20 +8922,20 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (block (result i32)
;; CHECK-NEXT: (local.set $7
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $23)
+ ;; CHECK-NEXT: (local.get $25)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $7)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (i32.lt_s
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -8991,10 +8943,10 @@
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: (i32.gt_s
;; CHECK-NEXT: (local.get $5)
- ;; CHECK-NEXT: (local.get $16)
+ ;; CHECK-NEXT: (local.get $17)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
@@ -9012,7 +8964,7 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $___fwritex
- ;; CHECK-NEXT: (local.get $12)
+ ;; CHECK-NEXT: (local.get $10)
;; CHECK-NEXT: (local.get $8)
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
@@ -9031,7 +8983,7 @@
;; CHECK-NEXT: (call $_pad
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (i32.const 48)
- ;; CHECK-NEXT: (local.get $10)
+ ;; CHECK-NEXT: (local.get $12)
;; CHECK-NEXT: (local.get $15)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
@@ -14894,6 +14846,93 @@
)
)
)
+ ;; CHECK: (func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
+ ;; CHECK-NEXT: (local $3 i32)
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (local.get $1)
+ ;; CHECK-NEXT: (loop $while-in
+ ;; CHECK-NEXT: (i32.store8
+ ;; CHECK-NEXT: (local.tee $2
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $2)
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.or
+ ;; CHECK-NEXT: (call $___uremdi3
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (local.get $1)
+ ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 48)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $0
+ ;; CHECK-NEXT: (call $___udivdi3
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (local.get $1)
+ ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $3
+ ;; CHECK-NEXT: (global.get $tempRet0)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (i32.gt_u
+ ;; CHECK-NEXT: (local.get $1)
+ ;; CHECK-NEXT: (i32.const 9)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $1
+ ;; CHECK-NEXT: (local.get $3)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (br $while-in)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (loop $while-in1
+ ;; CHECK-NEXT: (i32.store8
+ ;; CHECK-NEXT: (local.tee $2
+ ;; CHECK-NEXT: (i32.sub
+ ;; CHECK-NEXT: (local.get $2)
+ ;; CHECK-NEXT: (i32.const 1)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.or
+ ;; CHECK-NEXT: (i32.rem_u
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (i32.const 48)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.set $1
+ ;; CHECK-NEXT: (i32.div_u
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (if
+ ;; CHECK-NEXT: (i32.ge_u
+ ;; CHECK-NEXT: (local.get $0)
+ ;; CHECK-NEXT: (i32.const 10)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (block
+ ;; CHECK-NEXT: (local.set $0
+ ;; CHECK-NEXT: (local.get $1)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (br $while-in1)
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: )
+ ;; CHECK-NEXT: (local.get $2)
+ ;; CHECK-NEXT: )
(func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
@@ -31021,87 +31060,3 @@
)
)
)
-;; CHECK: (func $byn-split-outlined-B$_fmt_u (param $0 i32) (param $1 i32) (param $2 i32)
-;; CHECK-NEXT: (local $3 i32)
-;; CHECK-NEXT: (loop $while-in
-;; CHECK-NEXT: (i32.store8
-;; CHECK-NEXT: (local.tee $2
-;; CHECK-NEXT: (i32.sub
-;; CHECK-NEXT: (local.get $2)
-;; CHECK-NEXT: (i32.const 1)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (i32.or
-;; CHECK-NEXT: (call $___uremdi3
-;; CHECK-NEXT: (local.get $0)
-;; CHECK-NEXT: (local.get $1)
-;; CHECK-NEXT: (i32.const 10)
-;; CHECK-NEXT: (i32.const 0)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (i32.const 48)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (local.set $0
-;; CHECK-NEXT: (call $___udivdi3
-;; CHECK-NEXT: (local.get $0)
-;; CHECK-NEXT: (local.get $1)
-;; CHECK-NEXT: (i32.const 10)
-;; CHECK-NEXT: (i32.const 0)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (local.set $3
-;; CHECK-NEXT: (global.get $tempRet0)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (if
-;; CHECK-NEXT: (i32.gt_u
-;; CHECK-NEXT: (local.get $1)
-;; CHECK-NEXT: (i32.const 9)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (block
-;; CHECK-NEXT: (local.set $1
-;; CHECK-NEXT: (local.get $3)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (br $while-in)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-
-;; CHECK: (func $byn-split-outlined-B$_fmt_u_0 (param $0 i32) (param $1 i32) (param $2 i32)
-;; CHECK-NEXT: (local $3 i32)
-;; CHECK-NEXT: (loop $while-in1
-;; CHECK-NEXT: (i32.store8
-;; CHECK-NEXT: (local.tee $2
-;; CHECK-NEXT: (i32.sub
-;; CHECK-NEXT: (local.get $2)
-;; CHECK-NEXT: (i32.const 1)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (i32.or
-;; CHECK-NEXT: (i32.rem_u
-;; CHECK-NEXT: (local.get $0)
-;; CHECK-NEXT: (i32.const 10)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (i32.const 48)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (local.set $1
-;; CHECK-NEXT: (i32.div_u
-;; CHECK-NEXT: (local.get $0)
-;; CHECK-NEXT: (i32.const 10)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (if
-;; CHECK-NEXT: (i32.ge_u
-;; CHECK-NEXT: (local.get $0)
-;; CHECK-NEXT: (i32.const 10)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (block
-;; CHECK-NEXT: (local.set $0
-;; CHECK-NEXT: (local.get $1)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: (br $while-in1)
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
-;; CHECK-NEXT: )
diff --git a/test/lit/passes/inlining_splitting.wast b/test/lit/passes/inlining_splitting.wast
index 98168527a..599bb9cc6 100644
--- a/test/lit/passes/inlining_splitting.wast
+++ b/test/lit/passes/inlining_splitting.wast
@@ -1,6 +1,6 @@
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
-;; RUN: foreach %s %t wasm-opt --inlining --optimize-level=3 --all-features -S -o - | filecheck %s
+;; RUN: foreach %s %t wasm-opt --inlining --optimize-level=3 --partial-inlining-ifs=4 --all-features -S -o - | filecheck %s
(module
;; CHECK: (type $none_=>_none (func))