From ad663c95bb4276f45ef4ac4a99ffece1f67b4228 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 10 Jul 2025 10:44:39 -0700 Subject: [PATCH 1/5] work --- src/passes/CMakeLists.txt | 1 + src/passes/LocalizeChildren.cpp | 43 ++++++++ src/passes/pass.cpp | 3 + src/passes/passes.h | 1 + test/lit/passes/localize-children.wast | 133 +++++++++++++++++++++++++ 5 files changed, 181 insertions(+) create mode 100644 src/passes/LocalizeChildren.cpp create mode 100644 test/lit/passes/localize-children.wast diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt index 16891caade3..fab2a6548d4 100644 --- a/src/passes/CMakeLists.txt +++ b/src/passes/CMakeLists.txt @@ -64,6 +64,7 @@ set(passes_SOURCES LLVMMemoryCopyFillLowering.cpp LocalCSE.cpp LocalSubtyping.cpp + LocalizeChildren.cpp LogExecution.cpp LoopInvariantCodeMotion.cpp Memory64Lowering.cpp diff --git a/src/passes/LocalizeChildren.cpp b/src/passes/LocalizeChildren.cpp new file mode 100644 index 00000000000..c28883bde53 --- /dev/null +++ b/src/passes/LocalizeChildren.cpp @@ -0,0 +1,43 @@ +/* + * Copyright 2025 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ir/localize.h" +#include "pass.h" +//#include "wasm-builder.h" +#include "wasm.h" + +namespace wasm { + +struct LocalizeChildren : public WalkerPass> { + bool isFunctionParallel() override { return true; } + + std::unique_ptr create() override { + return std::make_unique(); + } + + // TODO add other things that might benefit + void visitBinary(Expression* curr) { + ChildLocalizer localizer(curr, getFunction(), *getModule(), getPassOptions()); + auto* rep = localizer.getReplacement(); + if (rep != curr) { + replaceCurrent(rep); + } + } +}; + +Pass* createLocalizeChildrenPass() { return new LocalizeChildren(); } + +} // namespace wasm diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 5e98ef5d086..8477f433b2a 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -249,6 +249,9 @@ void PassRegistry::registerPasses() { registerPass("local-subtyping", "apply more specific subtypes to locals where possible", createLocalSubtypingPass); + registerPass("localize-children", + "move children with effects to locals", + createLocalizeChildrenPass); registerPass("log-execution", "instrument the build with logging of where execution goes", createLogExecutionPass); diff --git a/src/passes/passes.h b/src/passes/passes.h index e0c03bad8d7..54d8b0ea867 100644 --- a/src/passes/passes.h +++ b/src/passes/passes.h @@ -76,6 +76,7 @@ Pass* createLegalizeJSInterfacePass(); Pass* createLimitSegmentsPass(); Pass* createLocalCSEPass(); Pass* createLocalSubtypingPass(); +Pass* createLocalizeChildrenPass(); Pass* createLogExecutionPass(); Pass* createIntrinsicLoweringPass(); Pass* createTraceCallsPass(); diff --git a/test/lit/passes/localize-children.wast b/test/lit/passes/localize-children.wast new file mode 100644 index 00000000000..2cb81f412e5 --- /dev/null +++ b/test/lit/passes/localize-children.wast @@ -0,0 +1,133 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. +;; NOTE: This test was ported using port_passes_tests_to_lit.py and could be cleaned up. + +;; RUN: foreach %s %t wasm-opt --localize-children -S -o - | filecheck %s + +;; Also show a real-world testcase with interactions, see below. +;; RUN: foreach %s %t wasm-opt --localize-children --precompute-propagate --optimize-instructions -S -o - | filecheck %s --check-prefix=OPTS + +(module + ;; CHECK: (type $0 (func (result i32))) + + ;; CHECK: (type $1 (func (param i32) (result i32))) + + ;; CHECK: (memory $memory 10 20) + ;; OPTS: (type $0 (func (result i32))) + + ;; OPTS: (type $1 (func (param i32) (result i32))) + + ;; OPTS: (memory $memory 10 20) + (memory $memory 10 20) + + ;; CHECK: (export "interactions" (func $interactions)) + + ;; CHECK: (func $add (result i32) + ;; CHECK-NEXT: (local $0 i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (call $add) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; OPTS: (export "interactions" (func $interactions)) + + ;; OPTS: (func $add (result i32) + ;; OPTS-NEXT: (local $0 i32) + ;; OPTS-NEXT: (local.set $0 + ;; OPTS-NEXT: (call $add) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (i32.add + ;; OPTS-NEXT: (local.get $0) + ;; OPTS-NEXT: (i32.const 42) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: ) + (func $add (result i32) + ;; The call should be moved to a local. + (i32.add + (call $add) + (i32.const 42) + ) + ) + + ;; CHECK: (func $nothing (result i32) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (i32.const 20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; OPTS: (func $nothing (result i32) + ;; OPTS-NEXT: (i32.const 30) + ;; OPTS-NEXT: ) + (func $nothing (result i32) + ;; There is nothing for us to do here. + (i32.add + (i32.const 10) + (i32.const 20) + ) + ) + + ;; CHECK: (func $interactions (param $x i32) (result i32) + ;; CHECK-NEXT: (local $1 i32) + ;; CHECK-NEXT: (local $2 i32) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; OPTS: (func $interactions (param $x i32) (result i32) + ;; OPTS-NEXT: (local $1 i32) + ;; OPTS-NEXT: (local $2 i32) + ;; OPTS-NEXT: (local.set $1 + ;; OPTS-NEXT: (i32.load + ;; OPTS-NEXT: (local.get $x) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (local.set $2 + ;; OPTS-NEXT: (block (result i32) + ;; OPTS-NEXT: (i32.store + ;; OPTS-NEXT: (local.get $x) + ;; OPTS-NEXT: (i32.const 0) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (i32.const 0) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (i32.const 1) + ;; OPTS-NEXT: ) + (func $interactions (export "interactions") (param $x i32) (result i32) + ;; The load and store interact here, which prevents merge-blocks from + ;; simply moving the store outside. However, this is optimizable as shown + ;; in OPTS: + ;; * --localize-children moves effects out of the >=. + ;; * --precompute-propagate propagates the 0 to one >= arm. + ;; * --optimize-instructions then sees (unsigned) >= 0 and applies the + ;; result of 1. + (i32.ge_u + (i32.load + (local.get $x) + ) + (block (result i32) + (i32.store + (local.get $x) + (i32.const 0) + ) + (i32.const 0) + ) + ) + ) +) From e273acf3a8742e6c0a0699fb792bf2d2e5c072ca Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 10 Jul 2025 10:50:29 -0700 Subject: [PATCH 2/5] mixed --- src/passes/LocalizeChildren.cpp | 1 - src/passes/pass.cpp | 1 + test/lit/help/wasm-metadce.test | 3 + test/lit/help/wasm-opt.test | 3 + test/lit/help/wasm2js.test | 3 + test/lit/passes/O4_disable-bulk-memory.wast | 8 +- .../asyncify_mod-asyncify-never-unwind_O.wast | 6 +- .../inlining-optimizing_optimize-level=3.wast | 6280 +++++++++-------- test/passes/O3_low-memory-unused_metrics.txt | 108 +- test/passes/fannkuch3_manyopts_dwarf.bin.txt | 1282 ++-- 10 files changed, 3860 insertions(+), 3835 deletions(-) diff --git a/src/passes/LocalizeChildren.cpp b/src/passes/LocalizeChildren.cpp index c28883bde53..47d4c828029 100644 --- a/src/passes/LocalizeChildren.cpp +++ b/src/passes/LocalizeChildren.cpp @@ -16,7 +16,6 @@ #include "ir/localize.h" #include "pass.h" -//#include "wasm-builder.h" #include "wasm.h" namespace wasm { diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 8477f433b2a..112cb6aec36 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -646,6 +646,7 @@ void PassRunner::addDefaultFunctionOptimizationPasses() { addIfNoDWARFIssues("remove-unused-names"); addIfNoDWARFIssues("remove-unused-brs"); addIfNoDWARFIssues("remove-unused-names"); + addIfNoDWARFIssues("localize-children"); addIfNoDWARFIssues("optimize-instructions"); if (wasm->features.hasGC()) { addIfNoDWARFIssues("heap-store-optimization"); diff --git a/test/lit/help/wasm-metadce.test b/test/lit/help/wasm-metadce.test index 4c727bcbd1f..6620ceba383 100644 --- a/test/lit/help/wasm-metadce.test +++ b/test/lit/help/wasm-metadce.test @@ -250,6 +250,9 @@ ;; CHECK-NEXT: --local-subtyping apply more specific subtypes to ;; CHECK-NEXT: locals where possible ;; CHECK-NEXT: +;; CHECK-NEXT: --localize-children move children with effects to +;; CHECK-NEXT: locals +;; CHECK-NEXT: ;; CHECK-NEXT: --log-execution instrument the build with ;; CHECK-NEXT: logging of where execution goes ;; CHECK-NEXT: diff --git a/test/lit/help/wasm-opt.test b/test/lit/help/wasm-opt.test index a0d8d199f94..764d1dc17af 100644 --- a/test/lit/help/wasm-opt.test +++ b/test/lit/help/wasm-opt.test @@ -274,6 +274,9 @@ ;; CHECK-NEXT: --local-subtyping apply more specific subtypes to ;; CHECK-NEXT: locals where possible ;; CHECK-NEXT: +;; CHECK-NEXT: --localize-children move children with effects to +;; CHECK-NEXT: locals +;; CHECK-NEXT: ;; CHECK-NEXT: --log-execution instrument the build with ;; CHECK-NEXT: logging of where execution goes ;; CHECK-NEXT: diff --git a/test/lit/help/wasm2js.test b/test/lit/help/wasm2js.test index 881e18950e7..9ab3caa9118 100644 --- a/test/lit/help/wasm2js.test +++ b/test/lit/help/wasm2js.test @@ -214,6 +214,9 @@ ;; CHECK-NEXT: --local-subtyping apply more specific subtypes to ;; CHECK-NEXT: locals where possible ;; CHECK-NEXT: +;; CHECK-NEXT: --localize-children move children with effects to +;; CHECK-NEXT: locals +;; CHECK-NEXT: ;; CHECK-NEXT: --log-execution instrument the build with ;; CHECK-NEXT: logging of where execution goes ;; CHECK-NEXT: diff --git a/test/lit/passes/O4_disable-bulk-memory.wast b/test/lit/passes/O4_disable-bulk-memory.wast index d75258a9640..a4a2281fb29 100644 --- a/test/lit/passes/O4_disable-bulk-memory.wast +++ b/test/lit/passes/O4_disable-bulk-memory.wast @@ -2988,8 +2988,7 @@ ;; CHECK: (func $assembly/index/getBody (param $0 i32) (result i32) ;; CHECK-NEXT: (local $1 i32) ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.gt_u ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $1 ;; CHECK-NEXT: (i32.load @@ -2997,11 +2996,11 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.gt_u ;; CHECK-NEXT: (i32.shr_u ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.tee $1 @@ -3012,6 +3011,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (i32.load offset=8 diff --git a/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast b/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast index eefdabe3438..6296f6d5840 100644 --- a/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast +++ b/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast @@ -45,9 +45,6 @@ ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.or ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $__asyncify_state) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (i32.eq ;; CHECK-NEXT: (global.get $__asyncify_state) @@ -74,6 +71,9 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $__asyncify_state) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (call $import) diff --git a/test/lit/passes/inlining-optimizing_optimize-level=3.wast b/test/lit/passes/inlining-optimizing_optimize-level=3.wast index f6df7305620..9b759f6f39a 100644 --- a/test/lit/passes/inlining-optimizing_optimize-level=3.wast +++ b/test/lit/passes/inlining-optimizing_optimize-level=3.wast @@ -2791,10 +2791,10 @@ ;; CHECK-NEXT: (i32.store offset=16 ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.load offset=48 ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 0) @@ -2878,13 +2878,13 @@ ;; CHECK-NEXT: (i32.ne ;; CHECK-NEXT: (i32.load8_s ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 10) @@ -4830,7 +4830,6 @@ ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.shl ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (i32.load8_s @@ -4840,6 +4839,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -5160,7 +5160,6 @@ ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.shl ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (i32.load8_s @@ -5170,6 +5169,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -5445,158 +5445,81 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.tee $12 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (block $__rjto$8 (result i32) - ;; CHECK-NEXT: (block $__rjti$8 - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (block $__rjti$7 (result i32) - ;; CHECK-NEXT: (block $__rjti$6 - ;; CHECK-NEXT: (block $__rjti$5 - ;; CHECK-NEXT: (block $__rjti$4 - ;; CHECK-NEXT: (block $__rjti$3 - ;; CHECK-NEXT: (block $switch-default120 - ;; CHECK-NEXT: (block $switch-case42 - ;; CHECK-NEXT: (block $switch-case41 - ;; CHECK-NEXT: (block $switch-case40 - ;; CHECK-NEXT: (block $switch-case39 - ;; CHECK-NEXT: (block $switch-case38 - ;; CHECK-NEXT: (block $switch-case37 - ;; CHECK-NEXT: (block $switch-case36 - ;; CHECK-NEXT: (block $switch-case34 - ;; CHECK-NEXT: (block $switch-case33 - ;; CHECK-NEXT: (block $switch-case29 - ;; CHECK-NEXT: (block $switch-case28 - ;; CHECK-NEXT: (block $switch-case27 - ;; CHECK-NEXT: (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -33) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (block $__rjto$8 (result i32) + ;; CHECK-NEXT: (block $__rjti$8 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (block $__rjti$7 (result i32) + ;; CHECK-NEXT: (block $__rjti$6 + ;; CHECK-NEXT: (block $__rjti$5 + ;; CHECK-NEXT: (block $__rjti$4 + ;; CHECK-NEXT: (block $__rjti$3 + ;; CHECK-NEXT: (block $switch-default120 + ;; CHECK-NEXT: (block $switch-case42 + ;; CHECK-NEXT: (block $switch-case41 + ;; CHECK-NEXT: (block $switch-case40 + ;; CHECK-NEXT: (block $switch-case39 + ;; CHECK-NEXT: (block $switch-case38 + ;; CHECK-NEXT: (block $switch-case37 + ;; CHECK-NEXT: (block $switch-case36 + ;; CHECK-NEXT: (block $switch-case34 + ;; CHECK-NEXT: (block $switch-case33 + ;; CHECK-NEXT: (block $switch-case29 + ;; CHECK-NEXT: (block $switch-case28 + ;; CHECK-NEXT: (block $switch-case27 + ;; CHECK-NEXT: (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -33) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 15) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 65) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $switch-default26 - ;; CHECK-NEXT: (block $switch-case25 - ;; CHECK-NEXT: (block $switch-case24 - ;; CHECK-NEXT: (block $switch-case23 - ;; CHECK-NEXT: (block $switch-case22 - ;; CHECK-NEXT: (block $switch-case21 - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store offset=4 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $17) - ;; 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: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store16 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 65) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $switch-default26 + ;; CHECK-NEXT: (block $switch-case25 + ;; CHECK-NEXT: (block $switch-case24 + ;; CHECK-NEXT: (block $switch-case23 + ;; CHECK-NEXT: (block $switch-case22 + ;; CHECK-NEXT: (block $switch-case21 + ;; 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 $11) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (i32.store ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) @@ -5653,6 +5576,12 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store16 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) @@ -5661,1673 +5590,1754 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.const 120) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.store8 ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in32 - ;; 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.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in32 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (call $_bitshift64Lshr - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (global.get $tempRet0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; 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 $23) - ;; CHECK-NEXT: (local.get $8) - ;; 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: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (global.set $tempRet0 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.store offset=4 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (global.get $tempRet0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 2048) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4092) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4093) - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.const 120) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$3) + ;; 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: (local.set $7 + ;; CHECK-NEXT: (local.tee $7 ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $36) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $36) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; 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 $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (call $___errno_location) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $__rjto$1 - ;; CHECK-NEXT: (block $__rjti$10 - ;; CHECK-NEXT: (loop $while-in2 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.load8_u offset=687 - ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (loop $while-in32 + ;; 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: (then - ;; CHECK-NEXT: (br_if $while-in2 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 87) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in32 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (call $_bitshift64Lshr + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 87) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (global.get $tempRet0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $__rjti$10 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in1 - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (loop $while-in3 (result i32) - ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (then + ;; 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: (local.get $5) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) + ;; 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: (br_if $while-in1 - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$5) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4101) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (global.set $tempRet0 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (global.get $tempRet0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 2048) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4092) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4093) + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$5) + ;; CHECK-NEXT: (br $__rjti$4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $37) - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $39) + ;; CHECK-NEXT: (local.set $8 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.get $37) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const -1) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$6) + ;; CHECK-NEXT: (br $__rjti$4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$6) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$7 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $36) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $36) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; 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 $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.store - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.set $5 ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: (call $___errno_location) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $30 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $28 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4108) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 2048) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__rjto$1 + ;; CHECK-NEXT: (block $__rjti$10 + ;; CHECK-NEXT: (loop $while-in2 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.load8_u offset=687 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (br_if $while-in2 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 87) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 87) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $__rjti$10 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in1 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (loop $while-in3 (result i32) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4111) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $28 - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4114) - ;; CHECK-NEXT: (i32.const 4109) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in1 + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.store - ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: (br $__rjti$5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4101) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $37) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $39) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.get $37) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const -1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$7 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.store + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $30 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.neg ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4108) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 2048) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4111) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2146435072) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2146435072) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once49 (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.tee $25 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (call $_frexp - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4114) + ;; CHECK-NEXT: (i32.const 4109) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.store + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2146435072) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2146435072) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once49 (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.tee $25 + ;; CHECK-NEXT: (f64.add + ;; CHECK-NEXT: (local.tee $14 + ;; CHECK-NEXT: (call $_frexp + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.tee $26 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 97) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (i32.const 12) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 11) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.tee $26 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in54 + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 16) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 97) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (br_if $while-in54 + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (f64.add + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $25) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 12) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (f64.add + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 45) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; 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: (i32.gt_u - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 11) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.lt_s + ;; 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: (local.get $24) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $38) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $38) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 43) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.le_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in56 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in54 - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ge ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 16) + ;; CHECK-NEXT: (f64.const 2147483648) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in54 - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (f64.add - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.le + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const -2147483649) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.trunc_f64_s + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (f64.add - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 45) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4075) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.convert_i32_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; 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: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.lt_s - ;; 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: (local.get $24) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (f64.eq + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $24) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $38) - ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 46) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $38) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in56 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (select ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $42) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 43) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (local.get $40) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.le_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in56 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ge - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.le - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const -2147483649) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.trunc_f64_s - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4075) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $41) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.convert_i32_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (f64.eq - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 46) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in56 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $40) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $41) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 65536) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once49 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 65536) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; 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: (f64.const 268435456) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $43) - ;; CHECK-NEXT: (local.get $44) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once49 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 28) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in60 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (f64.const 268435456) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $43) + ;; CHECK-NEXT: (local.get $44) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in60 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ge + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.le ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const -2147483649) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (i32.const -2147483648) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ge - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.le - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const -2147483649) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.trunc_f64_s - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.trunc_f64_s + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in60 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.tee $14 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.convert_i32_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 1e9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in60 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.tee $14 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.convert_i32_u + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 1e9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in62 + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 29) + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 29) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once63 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in62 - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 29) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (loop $while-in66 + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (call $_bitshift64Shl + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 29) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.ge_u - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once63 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in66 - ;; CHECK-NEXT: (global.set $tempRet0 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.tee $20 - ;; CHECK-NEXT: (call $_bitshift64Shl - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.add - ;; 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: (i32.store - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (call $___uremdi3 - ;; CHECK-NEXT: (local.get $12) - ;; 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 $12 - ;; CHECK-NEXT: (call $___udivmoddi4 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.const 1000000000) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in66 - ;; CHECK-NEXT: (i32.ge_u - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once63 - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.set $tempRet0 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (global.get $tempRet0) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in68 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (call $___uremdi3 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.tee $20 + ;; CHECK-NEXT: (global.get $tempRet0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in68) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1000000000) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (call $___udivmoddi4 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.const 1000000000) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in66 + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once63 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in68 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in62 - ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in68) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in62 + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 6) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (i32.const 25) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $31 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (loop $while-in70 (result i32) + ;; CHECK-NEXT: (local.set $18 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 6) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (i32.const 25) + ;; CHECK-NEXT: (block $do-once71 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $31 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.const 102) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (loop $while-in70 (result i32) - ;; CHECK-NEXT: (local.set $18 - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $34 + ;; CHECK-NEXT: (i32.shr_u + ;; CHECK-NEXT: (i32.const 1000000000) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once71 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $34 - ;; CHECK-NEXT: (i32.shr_u - ;; CHECK-NEXT: (i32.const 1000000000) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in74 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.shr_u - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $34) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in74 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once71 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in74 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.shr_u + ;; CHECK-NEXT: (local.tee $11 ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; 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 $31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in70) + ;; CHECK-NEXT: (local.get $34) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in74 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once71 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; 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 $8) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; 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 $31) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once75 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; 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: (else + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; 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 $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; 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 $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once75 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in78 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in78 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in78 - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.sub + ;; 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 $26) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $31 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in78 - ;; CHECK-NEXT: (i32.ge_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $34 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.const 103) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.sub - ;; 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 $26) - ;; CHECK-NEXT: (i32.const 102) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $31 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $34 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.const 103) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 9216) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.rem_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in80 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in80 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 4092) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 9216) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.rem_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in80 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in80 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4092) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; 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 $11) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $8 ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: (then @@ -7341,686 +7351,817 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once81 + ;; CHECK-NEXT: (local.set $35 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.div_u + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.tee $45 + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once81 - ;; CHECK-NEXT: (local.set $35 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.div_u - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 0.5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.const 1) + ;; CHECK-NEXT: (f64.const 1.5) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $45) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.tee $45 - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (f64.const 0.5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.const 1) - ;; CHECK-NEXT: (f64.const 1.5) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $45) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $25 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.const 9007199254740994) + ;; CHECK-NEXT: (f64.const 9007199254740992) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $35) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $30) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 45) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then ;; CHECK-NEXT: (local.set $25 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.const 9007199254740994) - ;; CHECK-NEXT: (f64.const 9007199254740992) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $35) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 45) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $25 - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (local.get $8) - ;; 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 $14) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.neg ;; CHECK-NEXT: (local.get $25) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 999999999) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in86 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in86 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 999999999) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (local.get $8) + ;; 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 $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 999999999) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in86 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once81 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in88 - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in88 - ;; CHECK-NEXT: (i32.ge_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in86 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 999999999) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; 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: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once81 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in88 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (br_if $while-in88 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $35 - ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: ) + ;; 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: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; 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 $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $35 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; 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 $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $26 ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-out89 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; 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 $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $26 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-out89 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $26 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in90) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $26 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in90) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; 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 $34) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once91 (result i32) + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.get $34) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once91 (result i32) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const -5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $19 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const -5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $19 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $do-once91 + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (then + ;; 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 $15) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $do-once91 - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once93) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.rem_u + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; 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 $11) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once93) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.rem_u - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once93) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in96 - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in96 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.rem_u - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once93) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in96 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 102) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in96 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.rem_u + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $19 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.tee $31 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 102) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 102) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (call $_fmt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $35) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; 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: (i32.const 0) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $24) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in98 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in98 - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $19 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.tee $31 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (call $_fmt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $35) + ;; 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: (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: (local.get $24) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in98 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 43) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in98 + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 43) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 65536) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $31) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.gt_u + ;; 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: (local.set $7 + ;; CHECK-NEXT: (call $_fmt_u + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $do-once103 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br_if $do-once103 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (br_if $do-once103 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in106 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $7 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in106 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and @@ -8033,93 +8174,62 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (i32.const 4143) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 65536) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $31) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.gt_u - ;; 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: (local.set $7 - ;; CHECK-NEXT: (call $_fmt_u - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $do-once103 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br_if $do-once103 - ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (loop $while-in110 (result i32) + ;; CHECK-NEXT: (if + ;; 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: (local.get $27) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in112 ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (br_if $do-once103 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (br_if $while-in112 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in106 - ;; CHECK-NEXT: (i32.store8 - ;; 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 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in106 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -8135,108 +8245,128 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in102) + ;; CHECK-NEXT: (br $while-in110) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (then + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (block $do-once99 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; 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: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) + ;; 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: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (i32.const 4143) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (block $do-once115 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in110 (result i32) - ;; CHECK-NEXT: (if - ;; 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: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in112 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in112 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and @@ -8249,1056 +8379,934 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (br_if $do-once115 ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in110) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (block $do-once99 - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; 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: (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: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $do-once115 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once115 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (i32.le_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once115 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (i32.const 4143) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (br_if $do-once115 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in118 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in118 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.le_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (i32.const 4143) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in118 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in114 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in118 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 18) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once99 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.set $11 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4135) - ;; CHECK-NEXT: (i32.const 4139) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4127) - ;; CHECK-NEXT: (i32.const 4131) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; 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 $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: ) - ;; 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: (local.tee $9 - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) - ;; 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: (br_if $while-in114 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else ;; 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 $11) - ;; 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: (i32.const 18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (global.get $tempRet0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 18) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; 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 + ;; CHECK-NEXT: (br_if $do-once99 ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.or ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) - ;; CHECK-NEXT: ) - ;; 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: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $label$break$L8 - ;; CHECK-NEXT: (block $__rjti$23 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $16) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in5 - ;; CHECK-NEXT: (br_if $__rjti$23 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in5 - ;; 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: ) - ;; 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: (else + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $__rjti$23 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $__rjto$06 - ;; CHECK-NEXT: (block $__rjti$07 - ;; CHECK-NEXT: (br_if $__rjti$07 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in38 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -2139062144) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -2139062144) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 16843009) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in38 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$07) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$06) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (loop $while-in59 (result i32) - ;; CHECK-NEXT: (br_if $label$break$L8 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4135) + ;; CHECK-NEXT: (i32.const 4139) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4127) + ;; CHECK-NEXT: (i32.const 4131) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in59 - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; 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 $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; 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: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.and ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in125 - ;; CHECK-NEXT: (block $while-out124 - ;; CHECK-NEXT: (br_if $while-out124 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) + ;; 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 $11) + ;; 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: ) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-out124 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (call $_wctomb - ;; CHECK-NEXT: (local.get $33) - ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in125 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $11 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $17 - ;; CHECK-NEXT: (i32.const -1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L1) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$8) + ;; CHECK-NEXT: ) + ;; 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: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $label$break$L8 + ;; CHECK-NEXT: (block $__rjti$23 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in5 + ;; CHECK-NEXT: (br_if $__rjti$23 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in127 (result i32) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $__rjti$7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (br_if $while-in5 + ;; 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: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $__rjti$7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $8 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (call $_wctomb - ;; CHECK-NEXT: (local.get $33) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $__rjti$23 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $__rjto$06 + ;; CHECK-NEXT: (block $__rjti$07 + ;; CHECK-NEXT: (br_if $__rjti$07 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in38 ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -2139062144) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -2139062144) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 16843009) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in38 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$07) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$06) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (loop $while-in59 (result i32) + ;; CHECK-NEXT: (br_if $label$break$L8 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in127 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in59 + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.set $12 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const -65537) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in125 + ;; CHECK-NEXT: (block $while-out124 + ;; CHECK-NEXT: (br_if $while-out124 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-out124 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (call $_wctomb + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in125 + ;; CHECK-NEXT: (i32.lt_u ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $17 + ;; CHECK-NEXT: (i32.const -1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in127 (result i32) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $__rjti$7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $__rjti$7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (call $_wctomb + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in127 + ;; CHECK-NEXT: (i32.gt_u ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const -65537) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/passes/O3_low-memory-unused_metrics.txt b/test/passes/O3_low-memory-unused_metrics.txt index 3117d77785d..ea68e95a46d 100644 --- a/test/passes/O3_low-memory-unused_metrics.txt +++ b/test/passes/O3_low-memory-unused_metrics.txt @@ -9,14 +9,14 @@ total [table-data] : 0 [tables] : 0 [tags] : 0 - [total] : 1953 + [total] : 1957 [vars] : 9 - Binary : 238 + Binary : 240 Block : 68 Break : 90 Call : 22 CallIndirect : 1 - Const : 174 + Const : 176 Drop : 8 If : 27 Load : 311 @@ -199,10 +199,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 31) ) @@ -219,10 +219,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 139) ) @@ -239,10 +239,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 8) ) @@ -268,10 +268,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 0) ) @@ -288,10 +288,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 0) ) @@ -308,10 +308,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 0) ) @@ -328,10 +328,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 0) ) @@ -348,10 +348,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 0) ) @@ -401,10 +401,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (local.get $3) ) @@ -421,10 +421,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.const 3) ) @@ -476,10 +476,10 @@ total ) (i32.store8 (i32.add - (local.get $10) (i32.load offset=8 (local.get $2) ) + (local.get $10) ) (i32.or (i32.or @@ -542,10 +542,10 @@ total ) (i32.store8 (i32.add - (local.get $5) (i32.load offset=8 (local.get $2) ) + (local.get $5) ) (local.get $4) ) @@ -569,10 +569,10 @@ total ) (i32.store8 (i32.add - (local.get $5) (i32.load offset=8 (local.get $2) ) + (local.get $5) ) (i32.shr_u (local.get $4) @@ -580,9 +580,12 @@ total ) ) (local.set $4 - (i32.load16_u offset=6 - (i32.load offset=28 - (local.get $2) + (i32.load16_u + (i32.add + (i32.load offset=28 + (local.get $2) + ) + (i32.const 6) ) ) ) @@ -599,17 +602,20 @@ total ) (i32.store8 (i32.add - (local.get $5) (i32.load offset=8 (local.get $2) ) + (local.get $5) ) (local.get $4) ) (local.set $4 - (i32.load8_u offset=7 - (i32.load offset=28 - (local.get $2) + (i32.load8_u + (i32.add + (i32.load offset=28 + (local.get $2) + ) + (i32.const 7) ) ) ) @@ -626,10 +632,10 @@ total ) (i32.store8 (i32.add - (local.get $5) (i32.load offset=8 (local.get $2) ) + (local.get $5) ) (local.get $4) ) @@ -676,10 +682,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (local.get $3) ) @@ -703,10 +709,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (local.get $3) ) @@ -739,10 +745,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (local.get $3) ) @@ -766,10 +772,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.get $3) @@ -883,10 +889,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.tee $3 @@ -922,10 +928,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.xor (i32.or @@ -961,10 +967,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.get $3) @@ -984,10 +990,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.get $3) @@ -1012,10 +1018,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.get $3) @@ -1035,10 +1041,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (local.get $3) ) @@ -1099,10 +1105,10 @@ total (loop $label$28 (if (i32.eq + (local.get $3) (i32.load offset=12 (local.get $2) ) - (local.get $3) ) (then (block $label$30 @@ -1302,7 +1308,8 @@ total ) ) (if - (i32.le_u + (i32.ge_u + (local.get $6) (i32.load16_u offset=20 (local.tee $5 (i32.load offset=28 @@ -1310,7 +1317,6 @@ total ) ) ) - (local.get $6) ) (then (local.set $3 @@ -1437,10 +1443,10 @@ total (block $label$36 (if (i32.eq + (local.get $3) (i32.load offset=12 (local.get $2) ) - (local.get $3) ) (then (block $label$39 @@ -1750,10 +1756,10 @@ total (block $label$44 (if (i32.eq + (local.get $3) (i32.load offset=12 (local.get $2) ) - (local.get $3) ) (then (block $label$47 @@ -2209,10 +2215,10 @@ total ) (i32.store8 (i32.add - (local.get $4) (i32.load offset=8 (local.get $2) ) + (local.get $4) ) (i32.shr_u (local.get $3) @@ -2738,10 +2744,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (local.get $1) ) @@ -2763,10 +2769,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.shr_u (local.get $1) @@ -2791,10 +2797,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (local.get $1) ) @@ -2816,10 +2822,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (local.get $1) ) @@ -2841,10 +2847,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (local.get $1) ) @@ -2866,10 +2872,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.shr_u (local.get $1) @@ -2894,10 +2900,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (local.get $1) ) @@ -2922,10 +2928,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.shr_u (local.get $1) @@ -2945,10 +2951,10 @@ total ) (i32.store8 (i32.add - (local.get $3) (i32.load offset=8 (local.get $2) ) + (local.get $3) ) (i32.shr_u (local.get $1) @@ -2973,10 +2979,10 @@ total ) (i32.store8 (i32.add - (local.get $1) (i32.load offset=8 (local.get $2) ) + (local.get $1) ) (i32.shr_u (local.get $3) @@ -2997,10 +3003,10 @@ total ) (i32.store8 (i32.add - (local.get $1) (i32.load offset=8 (local.get $2) ) + (local.get $1) ) (local.get $3) ) diff --git a/test/passes/fannkuch3_manyopts_dwarf.bin.txt b/test/passes/fannkuch3_manyopts_dwarf.bin.txt index 78fd4ed1193..27686ae6603 100644 --- a/test/passes/fannkuch3_manyopts_dwarf.bin.txt +++ b/test/passes/fannkuch3_manyopts_dwarf.bin.txt @@ -2303,7 +2303,7 @@ Contains section .debug_info (851 bytes) Contains section .debug_loc (1073 bytes) Contains section .debug_ranges (88 bytes) Contains section .debug_abbrev (333 bytes) -Contains section .debug_line (2642 bytes) +Contains section .debug_line (2636 bytes) Contains section .debug_str (434 bytes) .debug_abbrev contents: @@ -3119,7 +3119,7 @@ Abbrev table for offset: 0x00000000 .debug_line contents: debug_line[0x00000000] Line table prologue: - total_length: 0x00000a4e + total_length: 0x00000a48 version: 4 prologue_length: 0x000000dd min_inst_length: 1 @@ -3247,26 +3247,26 @@ file_names[ 4]: 0x00000171: 00 DW_LNE_set_address (0x000000000000006a) 0x00000178: 03 DW_LNS_advance_line (39) -0x0000017a: 06 DW_LNS_negate_stmt -0x0000017b: 01 DW_LNS_copy - 0x000000000000006a 39 4 1 0 0 is_stmt +0x0000017a: 05 DW_LNS_set_column (16) +0x0000017c: 01 DW_LNS_copy + 0x000000000000006a 39 16 1 0 0 -0x0000017c: 00 DW_LNE_set_address (0x000000000000006c) -0x00000183: 05 DW_LNS_set_column (16) -0x00000185: 06 DW_LNS_negate_stmt +0x0000017d: 00 DW_LNE_set_address (0x0000000000000073) +0x00000184: 05 DW_LNS_set_column (4) 0x00000186: 01 DW_LNS_copy - 0x000000000000006c 39 16 1 0 0 + 0x0000000000000073 39 4 1 0 0 -0x00000187: 00 DW_LNE_set_address (0x0000000000000075) -0x0000018e: 05 DW_LNS_set_column (4) -0x00000190: 01 DW_LNS_copy - 0x0000000000000075 39 4 1 0 0 +0x00000187: 00 DW_LNE_set_address (0x0000000000000074) +0x0000018e: 06 DW_LNS_negate_stmt +0x0000018f: 01 DW_LNS_copy + 0x0000000000000074 39 4 1 0 0 is_stmt -0x00000191: 00 DW_LNE_set_address (0x0000000000000077) -0x00000198: 05 DW_LNS_set_column (23) +0x00000190: 00 DW_LNE_set_address (0x0000000000000077) +0x00000197: 05 DW_LNS_set_column (23) +0x00000199: 06 DW_LNS_negate_stmt 0x0000019a: 01 DW_LNS_copy 0x0000000000000077 39 23 1 0 0 @@ -3316,26 +3316,27 @@ file_names[ 4]: 0x000001e2: 00 DW_LNE_set_address (0x00000000000000a2) 0x000001e9: 03 DW_LNS_advance_line (45) -0x000001eb: 05 DW_LNS_set_column (10) -0x000001ed: 01 DW_LNS_copy - 0x00000000000000a2 45 10 1 0 0 is_stmt +0x000001eb: 05 DW_LNS_set_column (18) +0x000001ed: 06 DW_LNS_negate_stmt +0x000001ee: 01 DW_LNS_copy + 0x00000000000000a2 45 18 1 0 0 -0x000001ee: 00 DW_LNE_set_address (0x00000000000000a4) -0x000001f5: 05 DW_LNS_set_column (18) -0x000001f7: 06 DW_LNS_negate_stmt +0x000001ef: 00 DW_LNE_set_address (0x00000000000000ab) +0x000001f6: 05 DW_LNS_set_column (10) 0x000001f8: 01 DW_LNS_copy - 0x00000000000000a4 45 18 1 0 0 + 0x00000000000000ab 45 10 1 0 0 -0x000001f9: 00 DW_LNE_set_address (0x00000000000000ad) -0x00000200: 05 DW_LNS_set_column (10) -0x00000202: 01 DW_LNS_copy - 0x00000000000000ad 45 10 1 0 0 +0x000001f9: 00 DW_LNE_set_address (0x00000000000000ac) +0x00000200: 06 DW_LNS_negate_stmt +0x00000201: 01 DW_LNS_copy + 0x00000000000000ac 45 10 1 0 0 is_stmt -0x00000203: 00 DW_LNE_set_address (0x00000000000000af) -0x0000020a: 05 DW_LNS_set_column (23) +0x00000202: 00 DW_LNE_set_address (0x00000000000000af) +0x00000209: 05 DW_LNS_set_column (23) +0x0000020b: 06 DW_LNS_negate_stmt 0x0000020c: 01 DW_LNS_copy 0x00000000000000af 45 23 1 0 0 @@ -3509,130 +3510,131 @@ file_names[ 4]: 0x00000324: 00 DW_LNE_set_address (0x0000000000000190) -0x0000032b: 05 DW_LNS_set_column (27) +0x0000032b: 05 DW_LNS_set_column (35) 0x0000032d: 06 DW_LNS_negate_stmt 0x0000032e: 01 DW_LNS_copy - 0x0000000000000190 76 27 1 0 0 + 0x0000000000000190 76 35 1 0 0 -0x0000032f: 00 DW_LNE_set_address (0x0000000000000192) -0x00000336: 05 DW_LNS_set_column (35) +0x0000032f: 00 DW_LNE_set_address (0x0000000000000199) +0x00000336: 05 DW_LNS_set_column (27) 0x00000338: 01 DW_LNS_copy - 0x0000000000000192 76 35 1 0 0 + 0x0000000000000199 76 27 1 0 0 -0x00000339: 00 DW_LNE_set_address (0x000000000000019b) -0x00000340: 05 DW_LNS_set_column (27) -0x00000342: 01 DW_LNS_copy - 0x000000000000019b 76 27 1 0 0 +0x00000339: 00 DW_LNE_set_address (0x000000000000019a) +0x00000340: 01 DW_LNS_copy + 0x000000000000019a 76 27 1 0 0 -0x00000343: 00 DW_LNE_set_address (0x00000000000001a0) -0x0000034a: 05 DW_LNS_set_column (25) -0x0000034c: 01 DW_LNS_copy +0x00000341: 00 DW_LNE_set_address (0x00000000000001a0) +0x00000348: 05 DW_LNS_set_column (25) +0x0000034a: 01 DW_LNS_copy 0x00000000000001a0 76 25 1 0 0 -0x0000034d: 00 DW_LNE_set_address (0x00000000000001a3) -0x00000354: 03 DW_LNS_advance_line (75) -0x00000356: 05 DW_LNS_set_column (27) -0x00000358: 06 DW_LNS_negate_stmt -0x00000359: 01 DW_LNS_copy +0x0000034b: 00 DW_LNE_set_address (0x00000000000001a3) +0x00000352: 03 DW_LNS_advance_line (75) +0x00000354: 05 DW_LNS_set_column (27) +0x00000356: 06 DW_LNS_negate_stmt +0x00000357: 01 DW_LNS_copy 0x00000000000001a3 75 27 1 0 0 is_stmt -0x0000035a: 00 DW_LNE_set_address (0x00000000000001a8) -0x00000361: 05 DW_LNS_set_column (13) -0x00000363: 06 DW_LNS_negate_stmt -0x00000364: 01 DW_LNS_copy +0x00000358: 00 DW_LNE_set_address (0x00000000000001a8) +0x0000035f: 05 DW_LNS_set_column (13) +0x00000361: 06 DW_LNS_negate_stmt +0x00000362: 01 DW_LNS_copy 0x00000000000001a8 75 13 1 0 0 -0x00000365: 00 DW_LNE_set_address (0x00000000000001b0) -0x0000036c: 03 DW_LNS_advance_line (77) -0x0000036e: 06 DW_LNS_negate_stmt -0x0000036f: 01 DW_LNS_copy +0x00000363: 00 DW_LNE_set_address (0x00000000000001b0) +0x0000036a: 03 DW_LNS_advance_line (77) +0x0000036c: 06 DW_LNS_negate_stmt +0x0000036d: 01 DW_LNS_copy 0x00000000000001b0 77 13 1 0 0 is_stmt -0x00000370: 00 DW_LNE_set_address (0x00000000000001b8) -0x00000377: 05 DW_LNS_set_column (22) -0x00000379: 06 DW_LNS_negate_stmt -0x0000037a: 01 DW_LNS_copy +0x0000036e: 00 DW_LNE_set_address (0x00000000000001b8) +0x00000375: 05 DW_LNS_set_column (22) +0x00000377: 06 DW_LNS_negate_stmt +0x00000378: 01 DW_LNS_copy 0x00000000000001b8 77 22 1 0 0 -0x0000037b: 00 DW_LNE_set_address (0x00000000000001bd) -0x00000382: 03 DW_LNS_advance_line (79) -0x00000384: 05 DW_LNS_set_column (16) -0x00000386: 06 DW_LNS_negate_stmt -0x00000387: 01 DW_LNS_copy +0x00000379: 00 DW_LNE_set_address (0x00000000000001bd) +0x00000380: 03 DW_LNS_advance_line (79) +0x00000382: 05 DW_LNS_set_column (16) +0x00000384: 06 DW_LNS_negate_stmt +0x00000385: 01 DW_LNS_copy 0x00000000000001bd 79 16 1 0 0 is_stmt -0x00000388: 00 DW_LNE_set_address (0x00000000000001c5) -0x0000038f: 05 DW_LNS_set_column (14) -0x00000391: 06 DW_LNS_negate_stmt -0x00000392: 01 DW_LNS_copy +0x00000386: 00 DW_LNE_set_address (0x00000000000001c5) +0x0000038d: 05 DW_LNS_set_column (14) +0x0000038f: 06 DW_LNS_negate_stmt +0x00000390: 01 DW_LNS_copy 0x00000000000001c5 79 14 1 0 0 -0x00000393: 00 DW_LNE_set_address (0x00000000000001d4) -0x0000039a: 05 DW_LNS_set_column (25) -0x0000039c: 01 DW_LNS_copy +0x00000391: 00 DW_LNE_set_address (0x00000000000001d4) +0x00000398: 05 DW_LNS_set_column (25) +0x0000039a: 01 DW_LNS_copy 0x00000000000001d4 79 25 1 0 0 -0x0000039d: 00 DW_LNE_set_address (0x00000000000001db) -0x000003a4: 03 DW_LNS_advance_line (81) -0x000003a6: 05 DW_LNS_set_column (11) -0x000003a8: 06 DW_LNS_negate_stmt -0x000003a9: 01 DW_LNS_copy +0x0000039b: 00 DW_LNE_set_address (0x00000000000001db) +0x000003a2: 03 DW_LNS_advance_line (81) +0x000003a4: 05 DW_LNS_set_column (11) +0x000003a6: 06 DW_LNS_negate_stmt +0x000003a7: 01 DW_LNS_copy 0x00000000000001db 81 11 1 0 0 is_stmt -0x000003aa: 00 DW_LNE_set_address (0x00000000000001e0) -0x000003b1: 03 DW_LNS_advance_line (66) -0x000003b3: 05 DW_LNS_set_column (16) -0x000003b5: 01 DW_LNS_copy +0x000003a8: 00 DW_LNE_set_address (0x00000000000001e0) +0x000003af: 03 DW_LNS_advance_line (66) +0x000003b1: 05 DW_LNS_set_column (16) +0x000003b3: 01 DW_LNS_copy 0x00000000000001e0 66 16 1 0 0 is_stmt -0x000003b6: 00 DW_LNE_set_address (0x00000000000001e7) -0x000003bd: 03 DW_LNS_advance_line (74) -0x000003bf: 05 DW_LNS_set_column (22) -0x000003c1: 01 DW_LNS_copy +0x000003b4: 00 DW_LNE_set_address (0x00000000000001e7) +0x000003bb: 03 DW_LNS_advance_line (74) +0x000003bd: 05 DW_LNS_set_column (22) +0x000003bf: 01 DW_LNS_copy 0x00000000000001e7 74 22 1 0 0 is_stmt -0x000003c2: 00 DW_LNE_set_address (0x00000000000001f0) -0x000003c9: 03 DW_LNS_advance_line (37) -0x000003cb: 05 DW_LNS_set_column (4) -0x000003cd: 01 DW_LNS_copy +0x000003c0: 00 DW_LNE_set_address (0x00000000000001f0) +0x000003c7: 03 DW_LNS_advance_line (37) +0x000003c9: 05 DW_LNS_set_column (4) +0x000003cb: 01 DW_LNS_copy 0x00000000000001f0 37 4 1 0 0 is_stmt -0x000003ce: 00 DW_LNE_set_address (0x00000000000001f5) -0x000003d5: 03 DW_LNS_advance_line (39) -0x000003d7: 01 DW_LNS_copy - 0x00000000000001f5 39 4 1 0 0 is_stmt +0x000003cc: 00 DW_LNE_set_address (0x00000000000001f5) +0x000003d3: 03 DW_LNS_advance_line (39) +0x000003d5: 05 DW_LNS_set_column (16) +0x000003d7: 06 DW_LNS_negate_stmt +0x000003d8: 01 DW_LNS_copy + 0x00000000000001f5 39 16 1 0 0 -0x000003d8: 00 DW_LNE_set_address (0x00000000000001f7) -0x000003df: 05 DW_LNS_set_column (16) -0x000003e1: 06 DW_LNS_negate_stmt +0x000003d9: 00 DW_LNE_set_address (0x00000000000001fe) +0x000003e0: 05 DW_LNS_set_column (4) 0x000003e2: 01 DW_LNS_copy - 0x00000000000001f7 39 16 1 0 0 + 0x00000000000001fe 39 4 1 0 0 -0x000003e3: 00 DW_LNE_set_address (0x0000000000000200) -0x000003ea: 05 DW_LNS_set_column (4) -0x000003ec: 01 DW_LNS_copy - 0x0000000000000200 39 4 1 0 0 +0x000003e3: 00 DW_LNE_set_address (0x00000000000001ff) +0x000003ea: 06 DW_LNS_negate_stmt +0x000003eb: 01 DW_LNS_copy + 0x00000000000001ff 39 4 1 0 0 is_stmt -0x000003ed: 00 DW_LNE_set_address (0x0000000000000202) -0x000003f4: 05 DW_LNS_set_column (23) +0x000003ec: 00 DW_LNE_set_address (0x0000000000000202) +0x000003f3: 05 DW_LNS_set_column (23) +0x000003f5: 06 DW_LNS_negate_stmt 0x000003f6: 01 DW_LNS_copy 0x0000000000000202 39 23 1 0 0 @@ -3668,26 +3670,27 @@ file_names[ 4]: 0x00000426: 00 DW_LNE_set_address (0x0000000000000227) 0x0000042d: 03 DW_LNS_advance_line (45) -0x0000042f: 05 DW_LNS_set_column (10) -0x00000431: 01 DW_LNS_copy - 0x0000000000000227 45 10 1 0 0 is_stmt +0x0000042f: 05 DW_LNS_set_column (18) +0x00000431: 06 DW_LNS_negate_stmt +0x00000432: 01 DW_LNS_copy + 0x0000000000000227 45 18 1 0 0 -0x00000432: 00 DW_LNE_set_address (0x0000000000000229) -0x00000439: 05 DW_LNS_set_column (18) -0x0000043b: 06 DW_LNS_negate_stmt +0x00000433: 00 DW_LNE_set_address (0x0000000000000230) +0x0000043a: 05 DW_LNS_set_column (10) 0x0000043c: 01 DW_LNS_copy - 0x0000000000000229 45 18 1 0 0 + 0x0000000000000230 45 10 1 0 0 -0x0000043d: 00 DW_LNE_set_address (0x0000000000000232) -0x00000444: 05 DW_LNS_set_column (10) -0x00000446: 01 DW_LNS_copy - 0x0000000000000232 45 10 1 0 0 +0x0000043d: 00 DW_LNE_set_address (0x0000000000000231) +0x00000444: 06 DW_LNS_negate_stmt +0x00000445: 01 DW_LNS_copy + 0x0000000000000231 45 10 1 0 0 is_stmt -0x00000447: 00 DW_LNE_set_address (0x0000000000000234) -0x0000044e: 05 DW_LNS_set_column (23) +0x00000446: 00 DW_LNE_set_address (0x0000000000000234) +0x0000044d: 05 DW_LNS_set_column (23) +0x0000044f: 06 DW_LNS_negate_stmt 0x00000450: 01 DW_LNS_copy 0x0000000000000234 45 23 1 0 0 @@ -3848,777 +3851,776 @@ file_names[ 4]: 0x00000552: 00 DW_LNE_set_address (0x000000000000030d) -0x00000559: 05 DW_LNS_set_column (27) +0x00000559: 05 DW_LNS_set_column (35) 0x0000055b: 06 DW_LNS_negate_stmt 0x0000055c: 01 DW_LNS_copy - 0x000000000000030d 76 27 1 0 0 + 0x000000000000030d 76 35 1 0 0 -0x0000055d: 00 DW_LNE_set_address (0x000000000000030f) -0x00000564: 05 DW_LNS_set_column (35) +0x0000055d: 00 DW_LNE_set_address (0x0000000000000316) +0x00000564: 05 DW_LNS_set_column (27) 0x00000566: 01 DW_LNS_copy - 0x000000000000030f 76 35 1 0 0 + 0x0000000000000316 76 27 1 0 0 -0x00000567: 00 DW_LNE_set_address (0x0000000000000318) -0x0000056e: 05 DW_LNS_set_column (27) -0x00000570: 01 DW_LNS_copy - 0x0000000000000318 76 27 1 0 0 +0x00000567: 00 DW_LNE_set_address (0x0000000000000317) +0x0000056e: 01 DW_LNS_copy + 0x0000000000000317 76 27 1 0 0 -0x00000571: 00 DW_LNE_set_address (0x000000000000031d) -0x00000578: 05 DW_LNS_set_column (25) -0x0000057a: 01 DW_LNS_copy +0x0000056f: 00 DW_LNE_set_address (0x000000000000031d) +0x00000576: 05 DW_LNS_set_column (25) +0x00000578: 01 DW_LNS_copy 0x000000000000031d 76 25 1 0 0 -0x0000057b: 00 DW_LNE_set_address (0x0000000000000320) -0x00000582: 03 DW_LNS_advance_line (75) -0x00000584: 05 DW_LNS_set_column (27) -0x00000586: 06 DW_LNS_negate_stmt -0x00000587: 01 DW_LNS_copy +0x00000579: 00 DW_LNE_set_address (0x0000000000000320) +0x00000580: 03 DW_LNS_advance_line (75) +0x00000582: 05 DW_LNS_set_column (27) +0x00000584: 06 DW_LNS_negate_stmt +0x00000585: 01 DW_LNS_copy 0x0000000000000320 75 27 1 0 0 is_stmt -0x00000588: 00 DW_LNE_set_address (0x000000000000032d) -0x0000058f: 03 DW_LNS_advance_line (77) -0x00000591: 05 DW_LNS_set_column (13) -0x00000593: 01 DW_LNS_copy +0x00000586: 00 DW_LNE_set_address (0x000000000000032d) +0x0000058d: 03 DW_LNS_advance_line (77) +0x0000058f: 05 DW_LNS_set_column (13) +0x00000591: 01 DW_LNS_copy 0x000000000000032d 77 13 1 0 0 is_stmt -0x00000594: 00 DW_LNE_set_address (0x0000000000000335) -0x0000059b: 05 DW_LNS_set_column (22) -0x0000059d: 06 DW_LNS_negate_stmt -0x0000059e: 01 DW_LNS_copy +0x00000592: 00 DW_LNE_set_address (0x0000000000000335) +0x00000599: 05 DW_LNS_set_column (22) +0x0000059b: 06 DW_LNS_negate_stmt +0x0000059c: 01 DW_LNS_copy 0x0000000000000335 77 22 1 0 0 -0x0000059f: 00 DW_LNE_set_address (0x000000000000033a) -0x000005a6: 03 DW_LNS_advance_line (79) -0x000005a8: 05 DW_LNS_set_column (16) -0x000005aa: 06 DW_LNS_negate_stmt -0x000005ab: 01 DW_LNS_copy +0x0000059d: 00 DW_LNE_set_address (0x000000000000033a) +0x000005a4: 03 DW_LNS_advance_line (79) +0x000005a6: 05 DW_LNS_set_column (16) +0x000005a8: 06 DW_LNS_negate_stmt +0x000005a9: 01 DW_LNS_copy 0x000000000000033a 79 16 1 0 0 is_stmt -0x000005ac: 00 DW_LNE_set_address (0x0000000000000342) -0x000005b3: 05 DW_LNS_set_column (14) -0x000005b5: 06 DW_LNS_negate_stmt -0x000005b6: 01 DW_LNS_copy +0x000005aa: 00 DW_LNE_set_address (0x0000000000000342) +0x000005b1: 05 DW_LNS_set_column (14) +0x000005b3: 06 DW_LNS_negate_stmt +0x000005b4: 01 DW_LNS_copy 0x0000000000000342 79 14 1 0 0 -0x000005b7: 00 DW_LNE_set_address (0x0000000000000351) -0x000005be: 05 DW_LNS_set_column (25) -0x000005c0: 01 DW_LNS_copy +0x000005b5: 00 DW_LNE_set_address (0x0000000000000351) +0x000005bc: 05 DW_LNS_set_column (25) +0x000005be: 01 DW_LNS_copy 0x0000000000000351 79 25 1 0 0 -0x000005c1: 00 DW_LNE_set_address (0x0000000000000358) -0x000005c8: 03 DW_LNS_advance_line (81) -0x000005ca: 05 DW_LNS_set_column (11) -0x000005cc: 06 DW_LNS_negate_stmt -0x000005cd: 01 DW_LNS_copy +0x000005bf: 00 DW_LNE_set_address (0x0000000000000358) +0x000005c6: 03 DW_LNS_advance_line (81) +0x000005c8: 05 DW_LNS_set_column (11) +0x000005ca: 06 DW_LNS_negate_stmt +0x000005cb: 01 DW_LNS_copy 0x0000000000000358 81 11 1 0 0 is_stmt -0x000005ce: 00 DW_LNE_set_address (0x000000000000035d) -0x000005d5: 03 DW_LNS_advance_line (66) -0x000005d7: 05 DW_LNS_set_column (16) -0x000005d9: 01 DW_LNS_copy +0x000005cc: 00 DW_LNE_set_address (0x000000000000035d) +0x000005d3: 03 DW_LNS_advance_line (66) +0x000005d5: 05 DW_LNS_set_column (16) +0x000005d7: 01 DW_LNS_copy 0x000000000000035d 66 16 1 0 0 is_stmt -0x000005da: 00 DW_LNE_set_address (0x0000000000000364) -0x000005e1: 03 DW_LNS_advance_line (74) -0x000005e3: 05 DW_LNS_set_column (22) -0x000005e5: 01 DW_LNS_copy +0x000005d8: 00 DW_LNE_set_address (0x0000000000000364) +0x000005df: 03 DW_LNS_advance_line (74) +0x000005e1: 05 DW_LNS_set_column (22) +0x000005e3: 01 DW_LNS_copy 0x0000000000000364 74 22 1 0 0 is_stmt -0x000005e6: 00 DW_LNE_set_address (0x0000000000000372) -0x000005ed: 03 DW_LNS_advance_line (67) -0x000005ef: 05 DW_LNS_set_column (13) -0x000005f1: 01 DW_LNS_copy +0x000005e4: 00 DW_LNE_set_address (0x0000000000000372) +0x000005eb: 03 DW_LNS_advance_line (67) +0x000005ed: 05 DW_LNS_set_column (13) +0x000005ef: 01 DW_LNS_copy 0x0000000000000372 67 13 1 0 0 is_stmt -0x000005f2: 00 DW_LNE_set_address (0x0000000000000376) -0x000005f9: 03 DW_LNS_advance_line (68) -0x000005fb: 01 DW_LNS_copy +0x000005f0: 00 DW_LNE_set_address (0x0000000000000376) +0x000005f7: 03 DW_LNS_advance_line (68) +0x000005f9: 01 DW_LNS_copy 0x0000000000000376 68 13 1 0 0 is_stmt -0x000005fc: 00 DW_LNE_set_address (0x000000000000037a) -0x00000603: 03 DW_LNS_advance_line (69) -0x00000605: 01 DW_LNS_copy +0x000005fa: 00 DW_LNE_set_address (0x000000000000037a) +0x00000601: 03 DW_LNS_advance_line (69) +0x00000603: 01 DW_LNS_copy 0x000000000000037a 69 13 1 0 0 is_stmt -0x00000606: 00 DW_LNE_set_address (0x000000000000037e) -0x0000060d: 03 DW_LNS_advance_line (70) -0x0000060f: 01 DW_LNS_copy +0x00000604: 00 DW_LNE_set_address (0x000000000000037e) +0x0000060b: 03 DW_LNS_advance_line (70) +0x0000060d: 01 DW_LNS_copy 0x000000000000037e 70 13 1 0 0 is_stmt -0x00000610: 00 DW_LNE_set_address (0x0000000000000381) -0x00000617: 00 DW_LNE_end_sequence +0x0000060e: 00 DW_LNE_set_address (0x0000000000000381) +0x00000615: 00 DW_LNE_end_sequence 0x0000000000000381 70 13 1 0 0 is_stmt end_sequence -0x0000061a: 00 DW_LNE_set_address (0x0000000000000383) -0x00000621: 03 DW_LNS_advance_line (152) -0x00000624: 01 DW_LNS_copy +0x00000618: 00 DW_LNE_set_address (0x0000000000000383) +0x0000061f: 03 DW_LNS_advance_line (152) +0x00000622: 01 DW_LNS_copy 0x0000000000000383 152 0 1 0 0 is_stmt -0x00000625: 00 DW_LNE_set_address (0x000000000000039f) -0x0000062c: 03 DW_LNS_advance_line (153) -0x0000062e: 05 DW_LNS_set_column (17) -0x00000630: 0a DW_LNS_set_prologue_end -0x00000631: 01 DW_LNS_copy +0x00000623: 00 DW_LNE_set_address (0x000000000000039f) +0x0000062a: 03 DW_LNS_advance_line (153) +0x0000062c: 05 DW_LNS_set_column (17) +0x0000062e: 0a DW_LNS_set_prologue_end +0x0000062f: 01 DW_LNS_copy 0x000000000000039f 153 17 1 0 0 is_stmt prologue_end -0x00000632: 00 DW_LNE_set_address (0x00000000000003a6) -0x00000639: 05 DW_LNS_set_column (28) -0x0000063b: 06 DW_LNS_negate_stmt -0x0000063c: 01 DW_LNS_copy +0x00000630: 00 DW_LNE_set_address (0x00000000000003a6) +0x00000637: 05 DW_LNS_set_column (28) +0x00000639: 06 DW_LNS_negate_stmt +0x0000063a: 01 DW_LNS_copy 0x00000000000003a6 153 28 1 0 0 -0x0000063d: 00 DW_LNE_set_address (0x00000000000003ab) -0x00000644: 05 DW_LNS_set_column (23) -0x00000646: 01 DW_LNS_copy +0x0000063b: 00 DW_LNE_set_address (0x00000000000003ab) +0x00000642: 05 DW_LNS_set_column (23) +0x00000644: 01 DW_LNS_copy 0x00000000000003ab 153 23 1 0 0 -0x00000647: 00 DW_LNE_set_address (0x00000000000003b1) -0x0000064e: 03 DW_LNS_advance_line (155) -0x00000650: 05 DW_LNS_set_column (10) -0x00000652: 06 DW_LNS_negate_stmt -0x00000653: 01 DW_LNS_copy +0x00000645: 00 DW_LNE_set_address (0x00000000000003b1) +0x0000064c: 03 DW_LNS_advance_line (155) +0x0000064e: 05 DW_LNS_set_column (10) +0x00000650: 06 DW_LNS_negate_stmt +0x00000651: 01 DW_LNS_copy 0x00000000000003b1 155 10 1 0 0 is_stmt -0x00000654: 00 DW_LNE_set_address (0x00000000000003b2) -0x0000065b: 05 DW_LNS_set_column (8) -0x0000065d: 06 DW_LNS_negate_stmt -0x0000065e: 01 DW_LNS_copy +0x00000652: 00 DW_LNE_set_address (0x00000000000003b2) +0x00000659: 05 DW_LNS_set_column (8) +0x0000065b: 06 DW_LNS_negate_stmt +0x0000065c: 01 DW_LNS_copy 0x00000000000003b2 155 8 1 0 0 -0x0000065f: 00 DW_LNE_set_address (0x00000000000003b5) -0x00000666: 03 DW_LNS_advance_line (156) -0x00000668: 05 DW_LNS_set_column (7) -0x0000066a: 06 DW_LNS_negate_stmt -0x0000066b: 01 DW_LNS_copy +0x0000065d: 00 DW_LNE_set_address (0x00000000000003b5) +0x00000664: 03 DW_LNS_advance_line (156) +0x00000666: 05 DW_LNS_set_column (7) +0x00000668: 06 DW_LNS_negate_stmt +0x00000669: 01 DW_LNS_copy 0x00000000000003b5 156 7 1 0 0 is_stmt -0x0000066c: 00 DW_LNE_set_address (0x00000000000003c2) -0x00000673: 03 DW_LNS_advance_line (94) -0x00000675: 05 DW_LNS_set_column (18) -0x00000677: 01 DW_LNS_copy +0x0000066a: 00 DW_LNE_set_address (0x00000000000003c2) +0x00000671: 03 DW_LNS_advance_line (94) +0x00000673: 05 DW_LNS_set_column (18) +0x00000675: 01 DW_LNS_copy 0x00000000000003c2 94 18 1 0 0 is_stmt -0x00000678: 00 DW_LNE_set_address (0x00000000000003dc) -0x0000067f: 03 DW_LNS_advance_line (95) -0x00000681: 05 DW_LNS_set_column (29) -0x00000683: 01 DW_LNS_copy +0x00000676: 00 DW_LNE_set_address (0x00000000000003dc) +0x0000067d: 03 DW_LNS_advance_line (95) +0x0000067f: 05 DW_LNS_set_column (29) +0x00000681: 01 DW_LNS_copy 0x00000000000003dc 95 29 1 0 0 is_stmt -0x00000684: 00 DW_LNE_set_address (0x00000000000003de) -0x0000068b: 03 DW_LNS_advance_line (98) -0x0000068d: 05 DW_LNS_set_column (19) -0x0000068f: 01 DW_LNS_copy +0x00000682: 00 DW_LNE_set_address (0x00000000000003de) +0x00000689: 03 DW_LNS_advance_line (98) +0x0000068b: 05 DW_LNS_set_column (19) +0x0000068d: 01 DW_LNS_copy 0x00000000000003de 98 19 1 0 0 is_stmt -0x00000690: 00 DW_LNE_set_address (0x00000000000003e5) -0x00000697: 03 DW_LNS_advance_line (97) -0x00000699: 05 DW_LNS_set_column (16) -0x0000069b: 01 DW_LNS_copy +0x0000068e: 00 DW_LNE_set_address (0x00000000000003e5) +0x00000695: 03 DW_LNS_advance_line (97) +0x00000697: 05 DW_LNS_set_column (16) +0x00000699: 01 DW_LNS_copy 0x00000000000003e5 97 16 1 0 0 is_stmt -0x0000069c: 00 DW_LNE_set_address (0x00000000000003ec) -0x000006a3: 03 DW_LNS_advance_line (96) -0x000006a5: 01 DW_LNS_copy +0x0000069a: 00 DW_LNE_set_address (0x00000000000003ec) +0x000006a1: 03 DW_LNS_advance_line (96) +0x000006a3: 01 DW_LNS_copy 0x00000000000003ec 96 16 1 0 0 is_stmt -0x000006a6: 00 DW_LNE_set_address (0x00000000000003f7) -0x000006ad: 03 DW_LNS_advance_line (94) -0x000006af: 05 DW_LNS_set_column (28) -0x000006b1: 01 DW_LNS_copy +0x000006a4: 00 DW_LNE_set_address (0x00000000000003f7) +0x000006ab: 03 DW_LNS_advance_line (94) +0x000006ad: 05 DW_LNS_set_column (28) +0x000006af: 01 DW_LNS_copy 0x00000000000003f7 94 28 1 0 0 is_stmt -0x000006b2: 00 DW_LNE_set_address (0x00000000000003fc) -0x000006b9: 05 DW_LNS_set_column (18) -0x000006bb: 06 DW_LNS_negate_stmt -0x000006bc: 01 DW_LNS_copy +0x000006b0: 00 DW_LNE_set_address (0x00000000000003fc) +0x000006b7: 05 DW_LNS_set_column (18) +0x000006b9: 06 DW_LNS_negate_stmt +0x000006ba: 01 DW_LNS_copy 0x00000000000003fc 94 18 1 0 0 -0x000006bd: 00 DW_LNE_set_address (0x0000000000000401) -0x000006c4: 05 DW_LNS_set_column (4) -0x000006c6: 01 DW_LNS_copy +0x000006bb: 00 DW_LNE_set_address (0x0000000000000401) +0x000006c2: 05 DW_LNS_set_column (4) +0x000006c4: 01 DW_LNS_copy 0x0000000000000401 94 4 1 0 0 -0x000006c7: 00 DW_LNE_set_address (0x0000000000000409) -0x000006ce: 03 DW_LNS_advance_line (102) -0x000006d0: 05 DW_LNS_set_column (27) -0x000006d2: 06 DW_LNS_negate_stmt -0x000006d3: 01 DW_LNS_copy +0x000006c5: 00 DW_LNE_set_address (0x0000000000000409) +0x000006cc: 03 DW_LNS_advance_line (102) +0x000006ce: 05 DW_LNS_set_column (27) +0x000006d0: 06 DW_LNS_negate_stmt +0x000006d1: 01 DW_LNS_copy 0x0000000000000409 102 27 1 0 0 is_stmt -0x000006d4: 00 DW_LNE_set_address (0x000000000000040e) -0x000006db: 05 DW_LNS_set_column (18) -0x000006dd: 06 DW_LNS_negate_stmt -0x000006de: 01 DW_LNS_copy +0x000006d2: 00 DW_LNE_set_address (0x000000000000040e) +0x000006d9: 05 DW_LNS_set_column (18) +0x000006db: 06 DW_LNS_negate_stmt +0x000006dc: 01 DW_LNS_copy 0x000000000000040e 102 18 1 0 0 -0x000006df: 00 DW_LNE_set_address (0x0000000000000414) -0x000006e6: 03 DW_LNS_advance_line (103) -0x000006e8: 06 DW_LNS_negate_stmt -0x000006e9: 01 DW_LNS_copy +0x000006dd: 00 DW_LNE_set_address (0x0000000000000414) +0x000006e4: 03 DW_LNS_advance_line (103) +0x000006e6: 06 DW_LNS_negate_stmt +0x000006e7: 01 DW_LNS_copy 0x0000000000000414 103 18 1 0 0 is_stmt -0x000006ea: 00 DW_LNE_set_address (0x0000000000000420) -0x000006f1: 03 DW_LNS_advance_line (105) -0x000006f3: 01 DW_LNS_copy +0x000006e8: 00 DW_LNE_set_address (0x0000000000000420) +0x000006ef: 03 DW_LNS_advance_line (105) +0x000006f1: 01 DW_LNS_copy 0x0000000000000420 105 18 1 0 0 is_stmt -0x000006f4: 00 DW_LNE_set_address (0x0000000000000429) -0x000006fb: 03 DW_LNS_advance_line (106) -0x000006fd: 05 DW_LNS_set_column (7) -0x000006ff: 01 DW_LNS_copy +0x000006f2: 00 DW_LNE_set_address (0x0000000000000429) +0x000006f9: 03 DW_LNS_advance_line (106) +0x000006fb: 05 DW_LNS_set_column (7) +0x000006fd: 01 DW_LNS_copy 0x0000000000000429 106 7 1 0 0 is_stmt -0x00000700: 00 DW_LNE_set_address (0x0000000000000431) -0x00000707: 05 DW_LNS_set_column (16) -0x00000709: 06 DW_LNS_negate_stmt -0x0000070a: 01 DW_LNS_copy +0x000006fe: 00 DW_LNE_set_address (0x0000000000000431) +0x00000705: 05 DW_LNS_set_column (16) +0x00000707: 06 DW_LNS_negate_stmt +0x00000708: 01 DW_LNS_copy 0x0000000000000431 106 16 1 0 0 -0x0000070b: 00 DW_LNE_set_address (0x0000000000000436) -0x00000712: 03 DW_LNS_advance_line (105) -0x00000714: 05 DW_LNS_set_column (24) -0x00000716: 06 DW_LNS_negate_stmt -0x00000717: 01 DW_LNS_copy +0x00000709: 00 DW_LNE_set_address (0x0000000000000436) +0x00000710: 03 DW_LNS_advance_line (105) +0x00000712: 05 DW_LNS_set_column (24) +0x00000714: 06 DW_LNS_negate_stmt +0x00000715: 01 DW_LNS_copy 0x0000000000000436 105 24 1 0 0 is_stmt -0x00000718: 00 DW_LNE_set_address (0x000000000000043b) -0x0000071f: 05 DW_LNS_set_column (18) -0x00000721: 06 DW_LNS_negate_stmt -0x00000722: 01 DW_LNS_copy +0x00000716: 00 DW_LNE_set_address (0x000000000000043b) +0x0000071d: 05 DW_LNS_set_column (18) +0x0000071f: 06 DW_LNS_negate_stmt +0x00000720: 01 DW_LNS_copy 0x000000000000043b 105 18 1 0 0 -0x00000723: 00 DW_LNE_set_address (0x0000000000000461) -0x0000072a: 03 DW_LNS_advance_line (112) -0x0000072c: 05 DW_LNS_set_column (13) -0x0000072e: 06 DW_LNS_negate_stmt -0x0000072f: 01 DW_LNS_copy +0x00000721: 00 DW_LNE_set_address (0x0000000000000461) +0x00000728: 03 DW_LNS_advance_line (112) +0x0000072a: 05 DW_LNS_set_column (13) +0x0000072c: 06 DW_LNS_negate_stmt +0x0000072d: 01 DW_LNS_copy 0x0000000000000461 112 13 1 0 0 is_stmt -0x00000730: 00 DW_LNE_set_address (0x0000000000000463) -0x00000737: 05 DW_LNS_set_column (26) -0x00000739: 06 DW_LNS_negate_stmt -0x0000073a: 01 DW_LNS_copy +0x0000072e: 00 DW_LNE_set_address (0x0000000000000463) +0x00000735: 05 DW_LNS_set_column (26) +0x00000737: 06 DW_LNS_negate_stmt +0x00000738: 01 DW_LNS_copy 0x0000000000000463 112 26 1 0 0 -0x0000073b: 00 DW_LNE_set_address (0x0000000000000470) -0x00000742: 05 DW_LNS_set_column (35) -0x00000744: 01 DW_LNS_copy +0x00000739: 00 DW_LNE_set_address (0x0000000000000470) +0x00000740: 05 DW_LNS_set_column (35) +0x00000742: 01 DW_LNS_copy 0x0000000000000470 112 35 1 0 0 -0x00000745: 00 DW_LNE_set_address (0x0000000000000471) -0x0000074c: 05 DW_LNS_set_column (13) -0x0000074e: 01 DW_LNS_copy +0x00000743: 00 DW_LNE_set_address (0x0000000000000471) +0x0000074a: 05 DW_LNS_set_column (13) +0x0000074c: 01 DW_LNS_copy 0x0000000000000471 112 13 1 0 0 -0x0000074f: 00 DW_LNE_set_address (0x000000000000047f) -0x00000756: 03 DW_LNS_advance_line (111) -0x00000758: 05 DW_LNS_set_column (30) -0x0000075a: 06 DW_LNS_negate_stmt -0x0000075b: 01 DW_LNS_copy +0x0000074d: 00 DW_LNE_set_address (0x000000000000047f) +0x00000754: 03 DW_LNS_advance_line (111) +0x00000756: 05 DW_LNS_set_column (30) +0x00000758: 06 DW_LNS_negate_stmt +0x00000759: 01 DW_LNS_copy 0x000000000000047f 111 30 1 0 0 is_stmt -0x0000075c: 00 DW_LNE_set_address (0x0000000000000484) -0x00000763: 05 DW_LNS_set_column (24) -0x00000765: 06 DW_LNS_negate_stmt -0x00000766: 01 DW_LNS_copy +0x0000075a: 00 DW_LNE_set_address (0x0000000000000484) +0x00000761: 05 DW_LNS_set_column (24) +0x00000763: 06 DW_LNS_negate_stmt +0x00000764: 01 DW_LNS_copy 0x0000000000000484 111 24 1 0 0 -0x00000767: 00 DW_LNE_set_address (0x0000000000000489) -0x0000076e: 05 DW_LNS_set_column (10) -0x00000770: 01 DW_LNS_copy +0x00000765: 00 DW_LNE_set_address (0x0000000000000489) +0x0000076c: 05 DW_LNS_set_column (10) +0x0000076e: 01 DW_LNS_copy 0x0000000000000489 111 10 1 0 0 -0x00000771: 00 DW_LNE_set_address (0x000000000000048e) -0x00000778: 03 DW_LNS_advance_line (113) -0x0000077a: 06 DW_LNS_negate_stmt -0x0000077b: 01 DW_LNS_copy +0x0000076f: 00 DW_LNE_set_address (0x000000000000048e) +0x00000776: 03 DW_LNS_advance_line (113) +0x00000778: 06 DW_LNS_negate_stmt +0x00000779: 01 DW_LNS_copy 0x000000000000048e 113 10 1 0 0 is_stmt -0x0000077c: 00 DW_LNE_set_address (0x0000000000000491) -0x00000783: 03 DW_LNS_advance_line (118) -0x00000785: 05 DW_LNS_set_column (16) -0x00000787: 01 DW_LNS_copy +0x0000077a: 00 DW_LNE_set_address (0x0000000000000491) +0x00000781: 03 DW_LNS_advance_line (118) +0x00000783: 05 DW_LNS_set_column (16) +0x00000785: 01 DW_LNS_copy 0x0000000000000491 118 16 1 0 0 is_stmt -0x00000788: 00 DW_LNE_set_address (0x000000000000049a) -0x0000078f: 03 DW_LNS_advance_line (119) -0x00000791: 05 DW_LNS_set_column (10) -0x00000793: 01 DW_LNS_copy - 0x000000000000049a 119 10 1 0 0 is_stmt +0x00000786: 00 DW_LNE_set_address (0x000000000000049a) +0x0000078d: 03 DW_LNS_advance_line (119) +0x0000078f: 05 DW_LNS_set_column (18) +0x00000791: 06 DW_LNS_negate_stmt +0x00000792: 01 DW_LNS_copy + 0x000000000000049a 119 18 1 0 0 -0x00000794: 00 DW_LNE_set_address (0x000000000000049c) -0x0000079b: 05 DW_LNS_set_column (18) -0x0000079d: 06 DW_LNS_negate_stmt -0x0000079e: 01 DW_LNS_copy - 0x000000000000049c 119 18 1 0 0 +0x00000793: 00 DW_LNE_set_address (0x00000000000004a3) +0x0000079a: 05 DW_LNS_set_column (10) +0x0000079c: 01 DW_LNS_copy + 0x00000000000004a3 119 10 1 0 0 -0x0000079f: 00 DW_LNE_set_address (0x00000000000004a5) -0x000007a6: 05 DW_LNS_set_column (10) -0x000007a8: 01 DW_LNS_copy - 0x00000000000004a5 119 10 1 0 0 +0x0000079d: 00 DW_LNE_set_address (0x00000000000004a4) +0x000007a4: 06 DW_LNS_negate_stmt +0x000007a5: 01 DW_LNS_copy + 0x00000000000004a4 119 10 1 0 0 is_stmt -0x000007a9: 00 DW_LNE_set_address (0x00000000000004a7) -0x000007b0: 05 DW_LNS_set_column (23) -0x000007b2: 01 DW_LNS_copy +0x000007a6: 00 DW_LNE_set_address (0x00000000000004a7) +0x000007ad: 05 DW_LNS_set_column (23) +0x000007af: 06 DW_LNS_negate_stmt +0x000007b0: 01 DW_LNS_copy 0x00000000000004a7 119 23 1 0 0 -0x000007b3: 00 DW_LNE_set_address (0x00000000000004ac) -0x000007ba: 03 DW_LNS_advance_line (118) -0x000007bc: 05 DW_LNS_set_column (16) -0x000007be: 06 DW_LNS_negate_stmt -0x000007bf: 01 DW_LNS_copy +0x000007b1: 00 DW_LNE_set_address (0x00000000000004ac) +0x000007b8: 03 DW_LNS_advance_line (118) +0x000007ba: 05 DW_LNS_set_column (16) +0x000007bc: 06 DW_LNS_negate_stmt +0x000007bd: 01 DW_LNS_copy 0x00000000000004ac 118 16 1 0 0 is_stmt -0x000007c0: 00 DW_LNE_set_address (0x00000000000004b9) -0x000007c7: 03 DW_LNS_advance_line (122) -0x000007c9: 01 DW_LNS_copy +0x000007be: 00 DW_LNE_set_address (0x00000000000004b9) +0x000007c5: 03 DW_LNS_advance_line (122) +0x000007c7: 01 DW_LNS_copy 0x00000000000004b9 122 16 1 0 0 is_stmt -0x000007ca: 00 DW_LNE_set_address (0x00000000000004cd) -0x000007d1: 03 DW_LNS_advance_line (125) -0x000007d3: 05 DW_LNS_set_column (22) -0x000007d5: 01 DW_LNS_copy +0x000007c8: 00 DW_LNE_set_address (0x00000000000004cd) +0x000007cf: 03 DW_LNS_advance_line (125) +0x000007d1: 05 DW_LNS_set_column (22) +0x000007d3: 01 DW_LNS_copy 0x00000000000004cd 125 22 1 0 0 is_stmt -0x000007d6: 00 DW_LNE_set_address (0x00000000000004d4) -0x000007dd: 03 DW_LNS_advance_line (126) -0x000007df: 05 DW_LNS_set_column (27) -0x000007e1: 01 DW_LNS_copy +0x000007d4: 00 DW_LNE_set_address (0x00000000000004d4) +0x000007db: 03 DW_LNS_advance_line (126) +0x000007dd: 05 DW_LNS_set_column (27) +0x000007df: 01 DW_LNS_copy 0x00000000000004d4 126 27 1 0 0 is_stmt -0x000007e2: 00 DW_LNE_set_address (0x00000000000004dd) -0x000007e9: 03 DW_LNS_advance_line (127) -0x000007eb: 05 DW_LNS_set_column (16) -0x000007ed: 01 DW_LNS_copy +0x000007e0: 00 DW_LNE_set_address (0x00000000000004dd) +0x000007e7: 03 DW_LNS_advance_line (127) +0x000007e9: 05 DW_LNS_set_column (16) +0x000007eb: 01 DW_LNS_copy 0x00000000000004dd 127 16 1 0 0 is_stmt -0x000007ee: 00 DW_LNE_set_address (0x00000000000004e5) -0x000007f5: 05 DW_LNS_set_column (27) -0x000007f7: 06 DW_LNS_negate_stmt -0x000007f8: 01 DW_LNS_copy - 0x00000000000004e5 127 27 1 0 0 +0x000007ec: 00 DW_LNE_set_address (0x00000000000004e5) +0x000007f3: 05 DW_LNS_set_column (35) +0x000007f5: 06 DW_LNS_negate_stmt +0x000007f6: 01 DW_LNS_copy + 0x00000000000004e5 127 35 1 0 0 -0x000007f9: 00 DW_LNE_set_address (0x00000000000004e7) -0x00000800: 05 DW_LNS_set_column (35) -0x00000802: 01 DW_LNS_copy - 0x00000000000004e7 127 35 1 0 0 +0x000007f7: 00 DW_LNE_set_address (0x00000000000004ee) +0x000007fe: 05 DW_LNS_set_column (27) +0x00000800: 01 DW_LNS_copy + 0x00000000000004ee 127 27 1 0 0 -0x00000803: 00 DW_LNE_set_address (0x00000000000004f0) -0x0000080a: 05 DW_LNS_set_column (27) -0x0000080c: 01 DW_LNS_copy - 0x00000000000004f0 127 27 1 0 0 +0x00000801: 00 DW_LNE_set_address (0x00000000000004ef) +0x00000808: 01 DW_LNS_copy + 0x00000000000004ef 127 27 1 0 0 -0x0000080d: 00 DW_LNE_set_address (0x00000000000004f5) -0x00000814: 05 DW_LNS_set_column (25) -0x00000816: 01 DW_LNS_copy +0x00000809: 00 DW_LNE_set_address (0x00000000000004f5) +0x00000810: 05 DW_LNS_set_column (25) +0x00000812: 01 DW_LNS_copy 0x00000000000004f5 127 25 1 0 0 -0x00000817: 00 DW_LNE_set_address (0x00000000000004f8) -0x0000081e: 03 DW_LNS_advance_line (126) -0x00000820: 05 DW_LNS_set_column (27) -0x00000822: 06 DW_LNS_negate_stmt -0x00000823: 01 DW_LNS_copy +0x00000813: 00 DW_LNE_set_address (0x00000000000004f8) +0x0000081a: 03 DW_LNS_advance_line (126) +0x0000081c: 05 DW_LNS_set_column (27) +0x0000081e: 06 DW_LNS_negate_stmt +0x0000081f: 01 DW_LNS_copy 0x00000000000004f8 126 27 1 0 0 is_stmt -0x00000824: 00 DW_LNE_set_address (0x00000000000004fd) -0x0000082b: 05 DW_LNS_set_column (13) -0x0000082d: 06 DW_LNS_negate_stmt -0x0000082e: 01 DW_LNS_copy +0x00000820: 00 DW_LNE_set_address (0x00000000000004fd) +0x00000827: 05 DW_LNS_set_column (13) +0x00000829: 06 DW_LNS_negate_stmt +0x0000082a: 01 DW_LNS_copy 0x00000000000004fd 126 13 1 0 0 -0x0000082f: 00 DW_LNE_set_address (0x0000000000000505) -0x00000836: 03 DW_LNS_advance_line (128) -0x00000838: 06 DW_LNS_negate_stmt -0x00000839: 01 DW_LNS_copy +0x0000082b: 00 DW_LNE_set_address (0x0000000000000505) +0x00000832: 03 DW_LNS_advance_line (128) +0x00000834: 06 DW_LNS_negate_stmt +0x00000835: 01 DW_LNS_copy 0x0000000000000505 128 13 1 0 0 is_stmt -0x0000083a: 00 DW_LNE_set_address (0x000000000000050d) -0x00000841: 05 DW_LNS_set_column (22) -0x00000843: 06 DW_LNS_negate_stmt -0x00000844: 01 DW_LNS_copy +0x00000836: 00 DW_LNE_set_address (0x000000000000050d) +0x0000083d: 05 DW_LNS_set_column (22) +0x0000083f: 06 DW_LNS_negate_stmt +0x00000840: 01 DW_LNS_copy 0x000000000000050d 128 22 1 0 0 -0x00000845: 00 DW_LNE_set_address (0x0000000000000512) -0x0000084c: 03 DW_LNS_advance_line (130) -0x0000084e: 05 DW_LNS_set_column (16) -0x00000850: 06 DW_LNS_negate_stmt -0x00000851: 01 DW_LNS_copy +0x00000841: 00 DW_LNE_set_address (0x0000000000000512) +0x00000848: 03 DW_LNS_advance_line (130) +0x0000084a: 05 DW_LNS_set_column (16) +0x0000084c: 06 DW_LNS_negate_stmt +0x0000084d: 01 DW_LNS_copy 0x0000000000000512 130 16 1 0 0 is_stmt -0x00000852: 00 DW_LNE_set_address (0x000000000000051a) -0x00000859: 05 DW_LNS_set_column (14) -0x0000085b: 06 DW_LNS_negate_stmt -0x0000085c: 01 DW_LNS_copy +0x0000084e: 00 DW_LNE_set_address (0x000000000000051a) +0x00000855: 05 DW_LNS_set_column (14) +0x00000857: 06 DW_LNS_negate_stmt +0x00000858: 01 DW_LNS_copy 0x000000000000051a 130 14 1 0 0 -0x0000085d: 00 DW_LNE_set_address (0x0000000000000529) -0x00000864: 05 DW_LNS_set_column (25) -0x00000866: 01 DW_LNS_copy +0x00000859: 00 DW_LNE_set_address (0x0000000000000529) +0x00000860: 05 DW_LNS_set_column (25) +0x00000862: 01 DW_LNS_copy 0x0000000000000529 130 25 1 0 0 -0x00000867: 00 DW_LNE_set_address (0x0000000000000530) -0x0000086e: 03 DW_LNS_advance_line (133) -0x00000870: 05 DW_LNS_set_column (11) -0x00000872: 06 DW_LNS_negate_stmt -0x00000873: 01 DW_LNS_copy +0x00000863: 00 DW_LNE_set_address (0x0000000000000530) +0x0000086a: 03 DW_LNS_advance_line (133) +0x0000086c: 05 DW_LNS_set_column (11) +0x0000086e: 06 DW_LNS_negate_stmt +0x0000086f: 01 DW_LNS_copy 0x0000000000000530 133 11 1 0 0 is_stmt -0x00000874: 00 DW_LNE_set_address (0x0000000000000535) -0x0000087b: 03 DW_LNS_advance_line (122) -0x0000087d: 05 DW_LNS_set_column (16) -0x0000087f: 01 DW_LNS_copy +0x00000870: 00 DW_LNE_set_address (0x0000000000000535) +0x00000877: 03 DW_LNS_advance_line (122) +0x00000879: 05 DW_LNS_set_column (16) +0x0000087b: 01 DW_LNS_copy 0x0000000000000535 122 16 1 0 0 is_stmt -0x00000880: 00 DW_LNE_set_address (0x000000000000053a) -0x00000887: 05 DW_LNS_set_column (14) -0x00000889: 06 DW_LNS_negate_stmt -0x0000088a: 01 DW_LNS_copy +0x0000087c: 00 DW_LNE_set_address (0x000000000000053a) +0x00000883: 05 DW_LNS_set_column (14) +0x00000885: 06 DW_LNS_negate_stmt +0x00000886: 01 DW_LNS_copy 0x000000000000053a 122 14 1 0 0 -0x0000088b: 00 DW_LNE_set_address (0x0000000000000540) -0x00000892: 03 DW_LNS_advance_line (110) -0x00000894: 05 DW_LNS_set_column (11) -0x00000896: 06 DW_LNS_negate_stmt -0x00000897: 01 DW_LNS_copy +0x00000887: 00 DW_LNE_set_address (0x0000000000000540) +0x0000088e: 03 DW_LNS_advance_line (110) +0x00000890: 05 DW_LNS_set_column (11) +0x00000892: 06 DW_LNS_negate_stmt +0x00000893: 01 DW_LNS_copy 0x0000000000000540 110 11 1 0 0 is_stmt -0x00000898: 00 DW_LNE_set_address (0x000000000000054c) -0x0000089f: 03 DW_LNS_advance_line (113) -0x000008a1: 05 DW_LNS_set_column (10) -0x000008a3: 01 DW_LNS_copy +0x00000894: 00 DW_LNE_set_address (0x000000000000054c) +0x0000089b: 03 DW_LNS_advance_line (113) +0x0000089d: 05 DW_LNS_set_column (10) +0x0000089f: 01 DW_LNS_copy 0x000000000000054c 113 10 1 0 0 is_stmt -0x000008a4: 00 DW_LNE_set_address (0x000000000000054f) -0x000008ab: 03 DW_LNS_advance_line (118) -0x000008ad: 05 DW_LNS_set_column (16) -0x000008af: 01 DW_LNS_copy +0x000008a0: 00 DW_LNE_set_address (0x000000000000054f) +0x000008a7: 03 DW_LNS_advance_line (118) +0x000008a9: 05 DW_LNS_set_column (16) +0x000008ab: 01 DW_LNS_copy 0x000000000000054f 118 16 1 0 0 is_stmt -0x000008b0: 00 DW_LNE_set_address (0x0000000000000558) -0x000008b7: 03 DW_LNS_advance_line (119) -0x000008b9: 05 DW_LNS_set_column (10) -0x000008bb: 01 DW_LNS_copy - 0x0000000000000558 119 10 1 0 0 is_stmt +0x000008ac: 00 DW_LNE_set_address (0x0000000000000558) +0x000008b3: 03 DW_LNS_advance_line (119) +0x000008b5: 05 DW_LNS_set_column (18) +0x000008b7: 06 DW_LNS_negate_stmt +0x000008b8: 01 DW_LNS_copy + 0x0000000000000558 119 18 1 0 0 -0x000008bc: 00 DW_LNE_set_address (0x000000000000055a) -0x000008c3: 05 DW_LNS_set_column (18) -0x000008c5: 06 DW_LNS_negate_stmt -0x000008c6: 01 DW_LNS_copy - 0x000000000000055a 119 18 1 0 0 +0x000008b9: 00 DW_LNE_set_address (0x0000000000000561) +0x000008c0: 05 DW_LNS_set_column (10) +0x000008c2: 01 DW_LNS_copy + 0x0000000000000561 119 10 1 0 0 -0x000008c7: 00 DW_LNE_set_address (0x0000000000000563) -0x000008ce: 05 DW_LNS_set_column (10) -0x000008d0: 01 DW_LNS_copy - 0x0000000000000563 119 10 1 0 0 +0x000008c3: 00 DW_LNE_set_address (0x0000000000000562) +0x000008ca: 06 DW_LNS_negate_stmt +0x000008cb: 01 DW_LNS_copy + 0x0000000000000562 119 10 1 0 0 is_stmt -0x000008d1: 00 DW_LNE_set_address (0x0000000000000565) -0x000008d8: 05 DW_LNS_set_column (23) -0x000008da: 01 DW_LNS_copy +0x000008cc: 00 DW_LNE_set_address (0x0000000000000565) +0x000008d3: 05 DW_LNS_set_column (23) +0x000008d5: 06 DW_LNS_negate_stmt +0x000008d6: 01 DW_LNS_copy 0x0000000000000565 119 23 1 0 0 -0x000008db: 00 DW_LNE_set_address (0x000000000000056a) -0x000008e2: 03 DW_LNS_advance_line (118) -0x000008e4: 05 DW_LNS_set_column (16) -0x000008e6: 06 DW_LNS_negate_stmt -0x000008e7: 01 DW_LNS_copy +0x000008d7: 00 DW_LNE_set_address (0x000000000000056a) +0x000008de: 03 DW_LNS_advance_line (118) +0x000008e0: 05 DW_LNS_set_column (16) +0x000008e2: 06 DW_LNS_negate_stmt +0x000008e3: 01 DW_LNS_copy 0x000000000000056a 118 16 1 0 0 is_stmt -0x000008e8: 00 DW_LNE_set_address (0x0000000000000577) -0x000008ef: 03 DW_LNS_advance_line (122) -0x000008f1: 01 DW_LNS_copy +0x000008e4: 00 DW_LNE_set_address (0x0000000000000577) +0x000008eb: 03 DW_LNS_advance_line (122) +0x000008ed: 01 DW_LNS_copy 0x0000000000000577 122 16 1 0 0 is_stmt -0x000008f2: 00 DW_LNE_set_address (0x000000000000057c) -0x000008f9: 05 DW_LNS_set_column (14) -0x000008fb: 06 DW_LNS_negate_stmt -0x000008fc: 01 DW_LNS_copy +0x000008ee: 00 DW_LNE_set_address (0x000000000000057c) +0x000008f5: 05 DW_LNS_set_column (14) +0x000008f7: 06 DW_LNS_negate_stmt +0x000008f8: 01 DW_LNS_copy 0x000000000000057c 122 14 1 0 0 -0x000008fd: 00 DW_LNE_set_address (0x0000000000000585) -0x00000904: 03 DW_LNS_advance_line (125) -0x00000906: 05 DW_LNS_set_column (22) -0x00000908: 06 DW_LNS_negate_stmt -0x00000909: 01 DW_LNS_copy +0x000008f9: 00 DW_LNE_set_address (0x0000000000000585) +0x00000900: 03 DW_LNS_advance_line (125) +0x00000902: 05 DW_LNS_set_column (22) +0x00000904: 06 DW_LNS_negate_stmt +0x00000905: 01 DW_LNS_copy 0x0000000000000585 125 22 1 0 0 is_stmt -0x0000090a: 00 DW_LNE_set_address (0x0000000000000592) -0x00000911: 03 DW_LNS_advance_line (126) -0x00000913: 05 DW_LNS_set_column (27) -0x00000915: 01 DW_LNS_copy +0x00000906: 00 DW_LNE_set_address (0x0000000000000592) +0x0000090d: 03 DW_LNS_advance_line (126) +0x0000090f: 05 DW_LNS_set_column (27) +0x00000911: 01 DW_LNS_copy 0x0000000000000592 126 27 1 0 0 is_stmt -0x00000916: 00 DW_LNE_set_address (0x000000000000059b) -0x0000091d: 03 DW_LNS_advance_line (127) -0x0000091f: 05 DW_LNS_set_column (16) -0x00000921: 01 DW_LNS_copy +0x00000912: 00 DW_LNE_set_address (0x000000000000059b) +0x00000919: 03 DW_LNS_advance_line (127) +0x0000091b: 05 DW_LNS_set_column (16) +0x0000091d: 01 DW_LNS_copy 0x000000000000059b 127 16 1 0 0 is_stmt -0x00000922: 00 DW_LNE_set_address (0x00000000000005a3) -0x00000929: 05 DW_LNS_set_column (27) -0x0000092b: 06 DW_LNS_negate_stmt -0x0000092c: 01 DW_LNS_copy - 0x00000000000005a3 127 27 1 0 0 +0x0000091e: 00 DW_LNE_set_address (0x00000000000005a3) +0x00000925: 05 DW_LNS_set_column (35) +0x00000927: 06 DW_LNS_negate_stmt +0x00000928: 01 DW_LNS_copy + 0x00000000000005a3 127 35 1 0 0 -0x0000092d: 00 DW_LNE_set_address (0x00000000000005a5) -0x00000934: 05 DW_LNS_set_column (35) -0x00000936: 01 DW_LNS_copy - 0x00000000000005a5 127 35 1 0 0 +0x00000929: 00 DW_LNE_set_address (0x00000000000005ac) +0x00000930: 05 DW_LNS_set_column (27) +0x00000932: 01 DW_LNS_copy + 0x00000000000005ac 127 27 1 0 0 -0x00000937: 00 DW_LNE_set_address (0x00000000000005ae) -0x0000093e: 05 DW_LNS_set_column (27) -0x00000940: 01 DW_LNS_copy - 0x00000000000005ae 127 27 1 0 0 +0x00000933: 00 DW_LNE_set_address (0x00000000000005ad) +0x0000093a: 01 DW_LNS_copy + 0x00000000000005ad 127 27 1 0 0 -0x00000941: 00 DW_LNE_set_address (0x00000000000005b3) -0x00000948: 05 DW_LNS_set_column (25) -0x0000094a: 01 DW_LNS_copy +0x0000093b: 00 DW_LNE_set_address (0x00000000000005b3) +0x00000942: 05 DW_LNS_set_column (25) +0x00000944: 01 DW_LNS_copy 0x00000000000005b3 127 25 1 0 0 -0x0000094b: 00 DW_LNE_set_address (0x00000000000005b6) -0x00000952: 03 DW_LNS_advance_line (126) -0x00000954: 05 DW_LNS_set_column (27) -0x00000956: 06 DW_LNS_negate_stmt -0x00000957: 01 DW_LNS_copy +0x00000945: 00 DW_LNE_set_address (0x00000000000005b6) +0x0000094c: 03 DW_LNS_advance_line (126) +0x0000094e: 05 DW_LNS_set_column (27) +0x00000950: 06 DW_LNS_negate_stmt +0x00000951: 01 DW_LNS_copy 0x00000000000005b6 126 27 1 0 0 is_stmt -0x00000958: 00 DW_LNE_set_address (0x00000000000005bb) -0x0000095f: 05 DW_LNS_set_column (13) -0x00000961: 06 DW_LNS_negate_stmt -0x00000962: 01 DW_LNS_copy +0x00000952: 00 DW_LNE_set_address (0x00000000000005bb) +0x00000959: 05 DW_LNS_set_column (13) +0x0000095b: 06 DW_LNS_negate_stmt +0x0000095c: 01 DW_LNS_copy 0x00000000000005bb 126 13 1 0 0 -0x00000963: 00 DW_LNE_set_address (0x00000000000005c3) -0x0000096a: 03 DW_LNS_advance_line (128) -0x0000096c: 06 DW_LNS_negate_stmt -0x0000096d: 01 DW_LNS_copy +0x0000095d: 00 DW_LNE_set_address (0x00000000000005c3) +0x00000964: 03 DW_LNS_advance_line (128) +0x00000966: 06 DW_LNS_negate_stmt +0x00000967: 01 DW_LNS_copy 0x00000000000005c3 128 13 1 0 0 is_stmt -0x0000096e: 00 DW_LNE_set_address (0x00000000000005cb) -0x00000975: 05 DW_LNS_set_column (22) -0x00000977: 06 DW_LNS_negate_stmt -0x00000978: 01 DW_LNS_copy +0x00000968: 00 DW_LNE_set_address (0x00000000000005cb) +0x0000096f: 05 DW_LNS_set_column (22) +0x00000971: 06 DW_LNS_negate_stmt +0x00000972: 01 DW_LNS_copy 0x00000000000005cb 128 22 1 0 0 -0x00000979: 00 DW_LNE_set_address (0x00000000000005d0) -0x00000980: 03 DW_LNS_advance_line (130) -0x00000982: 05 DW_LNS_set_column (16) -0x00000984: 06 DW_LNS_negate_stmt -0x00000985: 01 DW_LNS_copy +0x00000973: 00 DW_LNE_set_address (0x00000000000005d0) +0x0000097a: 03 DW_LNS_advance_line (130) +0x0000097c: 05 DW_LNS_set_column (16) +0x0000097e: 06 DW_LNS_negate_stmt +0x0000097f: 01 DW_LNS_copy 0x00000000000005d0 130 16 1 0 0 is_stmt -0x00000986: 00 DW_LNE_set_address (0x00000000000005d8) -0x0000098d: 05 DW_LNS_set_column (14) -0x0000098f: 06 DW_LNS_negate_stmt -0x00000990: 01 DW_LNS_copy +0x00000980: 00 DW_LNE_set_address (0x00000000000005d8) +0x00000987: 05 DW_LNS_set_column (14) +0x00000989: 06 DW_LNS_negate_stmt +0x0000098a: 01 DW_LNS_copy 0x00000000000005d8 130 14 1 0 0 -0x00000991: 00 DW_LNE_set_address (0x00000000000005e7) -0x00000998: 05 DW_LNS_set_column (25) -0x0000099a: 01 DW_LNS_copy +0x0000098b: 00 DW_LNE_set_address (0x00000000000005e7) +0x00000992: 05 DW_LNS_set_column (25) +0x00000994: 01 DW_LNS_copy 0x00000000000005e7 130 25 1 0 0 -0x0000099b: 00 DW_LNE_set_address (0x00000000000005ee) -0x000009a2: 03 DW_LNS_advance_line (133) -0x000009a4: 05 DW_LNS_set_column (11) -0x000009a6: 06 DW_LNS_negate_stmt -0x000009a7: 01 DW_LNS_copy +0x00000995: 00 DW_LNE_set_address (0x00000000000005ee) +0x0000099c: 03 DW_LNS_advance_line (133) +0x0000099e: 05 DW_LNS_set_column (11) +0x000009a0: 06 DW_LNS_negate_stmt +0x000009a1: 01 DW_LNS_copy 0x00000000000005ee 133 11 1 0 0 is_stmt -0x000009a8: 00 DW_LNE_set_address (0x00000000000005f3) -0x000009af: 03 DW_LNS_advance_line (122) -0x000009b1: 05 DW_LNS_set_column (16) -0x000009b3: 01 DW_LNS_copy +0x000009a2: 00 DW_LNE_set_address (0x00000000000005f3) +0x000009a9: 03 DW_LNS_advance_line (122) +0x000009ab: 05 DW_LNS_set_column (16) +0x000009ad: 01 DW_LNS_copy 0x00000000000005f3 122 16 1 0 0 is_stmt -0x000009b4: 00 DW_LNE_set_address (0x00000000000005f8) -0x000009bb: 05 DW_LNS_set_column (14) -0x000009bd: 06 DW_LNS_negate_stmt -0x000009be: 01 DW_LNS_copy +0x000009ae: 00 DW_LNE_set_address (0x00000000000005f8) +0x000009b5: 05 DW_LNS_set_column (14) +0x000009b7: 06 DW_LNS_negate_stmt +0x000009b8: 01 DW_LNS_copy 0x00000000000005f8 122 14 1 0 0 -0x000009bf: 00 DW_LNE_set_address (0x00000000000005fe) -0x000009c6: 03 DW_LNS_advance_line (110) -0x000009c8: 05 DW_LNS_set_column (11) -0x000009ca: 06 DW_LNS_negate_stmt -0x000009cb: 01 DW_LNS_copy +0x000009b9: 00 DW_LNE_set_address (0x00000000000005fe) +0x000009c0: 03 DW_LNS_advance_line (110) +0x000009c2: 05 DW_LNS_set_column (11) +0x000009c4: 06 DW_LNS_negate_stmt +0x000009c5: 01 DW_LNS_copy 0x00000000000005fe 110 11 1 0 0 is_stmt -0x000009cc: 00 DW_LNE_set_address (0x0000000000000604) -0x000009d3: 03 DW_LNS_advance_line (138) -0x000009d5: 05 DW_LNS_set_column (4) -0x000009d7: 01 DW_LNS_copy +0x000009c6: 00 DW_LNE_set_address (0x0000000000000604) +0x000009cd: 03 DW_LNS_advance_line (138) +0x000009cf: 05 DW_LNS_set_column (4) +0x000009d1: 01 DW_LNS_copy 0x0000000000000604 138 4 1 0 0 is_stmt -0x000009d8: 00 DW_LNE_set_address (0x0000000000000608) -0x000009df: 03 DW_LNS_advance_line (139) -0x000009e1: 01 DW_LNS_copy +0x000009d2: 00 DW_LNE_set_address (0x0000000000000608) +0x000009d9: 03 DW_LNS_advance_line (139) +0x000009db: 01 DW_LNS_copy 0x0000000000000608 139 4 1 0 0 is_stmt -0x000009e2: 00 DW_LNE_set_address (0x0000000000000618) -0x000009e9: 03 DW_LNS_advance_line (142) -0x000009eb: 05 DW_LNS_set_column (20) -0x000009ed: 01 DW_LNS_copy +0x000009dc: 00 DW_LNE_set_address (0x0000000000000618) +0x000009e3: 03 DW_LNS_advance_line (142) +0x000009e5: 05 DW_LNS_set_column (20) +0x000009e7: 01 DW_LNS_copy 0x0000000000000618 142 20 1 0 0 is_stmt -0x000009ee: 00 DW_LNE_set_address (0x0000000000000620) -0x000009f5: 03 DW_LNS_advance_line (146) -0x000009f7: 01 DW_LNS_copy +0x000009e8: 00 DW_LNE_set_address (0x0000000000000620) +0x000009ef: 03 DW_LNS_advance_line (146) +0x000009f1: 01 DW_LNS_copy 0x0000000000000620 146 20 1 0 0 is_stmt -0x000009f8: 00 DW_LNE_set_address (0x0000000000000627) -0x000009ff: 03 DW_LNS_advance_line (147) -0x00000a01: 05 DW_LNS_set_column (7) -0x00000a03: 01 DW_LNS_copy +0x000009f2: 00 DW_LNE_set_address (0x0000000000000627) +0x000009f9: 03 DW_LNS_advance_line (147) +0x000009fb: 05 DW_LNS_set_column (7) +0x000009fd: 01 DW_LNS_copy 0x0000000000000627 147 7 1 0 0 is_stmt -0x00000a04: 00 DW_LNE_set_address (0x000000000000062b) -0x00000a0b: 03 DW_LNS_advance_line (143) -0x00000a0d: 05 DW_LNS_set_column (11) -0x00000a0f: 01 DW_LNS_copy +0x000009fe: 00 DW_LNE_set_address (0x000000000000062b) +0x00000a05: 03 DW_LNS_advance_line (143) +0x00000a07: 05 DW_LNS_set_column (11) +0x00000a09: 01 DW_LNS_copy 0x000000000000062b 143 11 1 0 0 is_stmt -0x00000a10: 00 DW_LNE_set_address (0x000000000000062f) -0x00000a17: 05 DW_LNS_set_column (20) -0x00000a19: 06 DW_LNS_negate_stmt -0x00000a1a: 01 DW_LNS_copy +0x00000a0a: 00 DW_LNE_set_address (0x000000000000062f) +0x00000a11: 05 DW_LNS_set_column (20) +0x00000a13: 06 DW_LNS_negate_stmt +0x00000a14: 01 DW_LNS_copy 0x000000000000062f 143 20 1 0 0 -0x00000a1b: 00 DW_LNE_set_address (0x0000000000000634) -0x00000a22: 05 DW_LNS_set_column (11) -0x00000a24: 01 DW_LNS_copy +0x00000a15: 00 DW_LNE_set_address (0x0000000000000634) +0x00000a1c: 05 DW_LNS_set_column (11) +0x00000a1e: 01 DW_LNS_copy 0x0000000000000634 143 11 1 0 0 -0x00000a25: 00 DW_LNE_set_address (0x000000000000063b) -0x00000a2c: 03 DW_LNS_advance_line (141) -0x00000a2e: 05 DW_LNS_set_column (4) -0x00000a30: 06 DW_LNS_negate_stmt -0x00000a31: 01 DW_LNS_copy +0x00000a1f: 00 DW_LNE_set_address (0x000000000000063b) +0x00000a26: 03 DW_LNS_advance_line (141) +0x00000a28: 05 DW_LNS_set_column (4) +0x00000a2a: 06 DW_LNS_negate_stmt +0x00000a2b: 01 DW_LNS_copy 0x000000000000063b 141 4 1 0 0 is_stmt -0x00000a32: 00 DW_LNE_set_address (0x0000000000000641) -0x00000a39: 03 DW_LNS_advance_line (159) -0x00000a3b: 01 DW_LNS_copy +0x00000a2c: 00 DW_LNE_set_address (0x0000000000000641) +0x00000a33: 03 DW_LNS_advance_line (159) +0x00000a35: 01 DW_LNS_copy 0x0000000000000641 159 4 1 0 0 is_stmt -0x00000a3c: 00 DW_LNE_set_address (0x0000000000000658) -0x00000a43: 03 DW_LNS_advance_line (161) -0x00000a45: 05 DW_LNS_set_column (1) -0x00000a47: 01 DW_LNS_copy +0x00000a36: 00 DW_LNE_set_address (0x0000000000000658) +0x00000a3d: 03 DW_LNS_advance_line (161) +0x00000a3f: 05 DW_LNS_set_column (1) +0x00000a41: 01 DW_LNS_copy 0x0000000000000658 161 1 1 0 0 is_stmt -0x00000a48: 00 DW_LNE_set_address (0x0000000000000662) -0x00000a4f: 00 DW_LNE_end_sequence +0x00000a42: 00 DW_LNE_set_address (0x0000000000000662) +0x00000a49: 00 DW_LNE_end_sequence 0x0000000000000662 161 1 1 0 0 is_stmt end_sequence @@ -4806,21 +4808,21 @@ file_names[ 4]: (i32.store ;; code offset: 0x76 (i32.add - ;; code offset: 0x6a - (local.get $3) - ;; code offset: 0x75 + ;; code offset: 0x73 (i32.shl - ;; code offset: 0x71 + ;; code offset: 0x6f (local.tee $1 - ;; code offset: 0x6e + ;; code offset: 0x6c (i32.load - ;; code offset: 0x6c + ;; code offset: 0x6a (local.get $0) ) ) - ;; code offset: 0x73 + ;; code offset: 0x71 (i32.const 2) ) + ;; code offset: 0x74 + (local.get $3) ) ;; code offset: 0x7c (local.tee $4 @@ -4881,23 +4883,23 @@ file_names[ 4]: (i32.store ;; code offset: 0xae (i32.add - ;; code offset: 0xa2 - (local.get $9) - ;; code offset: 0xad + ;; code offset: 0xab (i32.shl - ;; code offset: 0xa9 + ;; code offset: 0xa7 (local.tee $1 - ;; code offset: 0xa8 + ;; code offset: 0xa6 (i32.sub - ;; code offset: 0xa4 + ;; code offset: 0xa2 (local.get $2) - ;; code offset: 0xa6 + ;; code offset: 0xa4 (i32.const 1) ) ) - ;; code offset: 0xab + ;; code offset: 0xa9 (i32.const 2) ) + ;; code offset: 0xac + (local.get $9) ) ;; code offset: 0xaf (local.get $2) @@ -5205,23 +5207,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x19c (i32.add - ;; code offset: 0x190 - (local.get $3) - ;; code offset: 0x19b + ;; code offset: 0x199 (i32.shl - ;; code offset: 0x197 + ;; code offset: 0x195 (local.tee $1 - ;; code offset: 0x196 + ;; code offset: 0x194 (i32.add - ;; code offset: 0x192 + ;; code offset: 0x190 (local.get $1) - ;; code offset: 0x194 + ;; code offset: 0x192 (i32.const 1) ) ) - ;; code offset: 0x199 + ;; code offset: 0x197 (i32.const 2) ) + ;; code offset: 0x19a + (local.get $3) ) ) ) @@ -5341,21 +5343,21 @@ file_names[ 4]: (i32.store ;; code offset: 0x201 (i32.add - ;; code offset: 0x1f5 - (local.get $3) - ;; code offset: 0x200 + ;; code offset: 0x1fe (i32.shl - ;; code offset: 0x1fc + ;; code offset: 0x1fa (local.tee $1 - ;; code offset: 0x1f9 + ;; code offset: 0x1f7 (i32.load - ;; code offset: 0x1f7 + ;; code offset: 0x1f5 (local.get $0) ) ) - ;; code offset: 0x1fe + ;; code offset: 0x1fc (i32.const 2) ) + ;; code offset: 0x1ff + (local.get $3) ) ;; code offset: 0x207 (local.tee $4 @@ -5407,23 +5409,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x233 (i32.add - ;; code offset: 0x227 - (local.get $9) - ;; code offset: 0x232 + ;; code offset: 0x230 (i32.shl - ;; code offset: 0x22e + ;; code offset: 0x22c (local.tee $1 - ;; code offset: 0x22d + ;; code offset: 0x22b (i32.sub - ;; code offset: 0x229 + ;; code offset: 0x227 (local.get $2) - ;; code offset: 0x22b + ;; code offset: 0x229 (i32.const 1) ) ) - ;; code offset: 0x230 + ;; code offset: 0x22e (i32.const 2) ) + ;; code offset: 0x231 + (local.get $9) ) ;; code offset: 0x234 (local.get $2) @@ -5721,23 +5723,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x319 (i32.add - ;; code offset: 0x30d - (local.get $3) - ;; code offset: 0x318 + ;; code offset: 0x316 (i32.shl - ;; code offset: 0x314 + ;; code offset: 0x312 (local.tee $1 - ;; code offset: 0x313 + ;; code offset: 0x311 (i32.add - ;; code offset: 0x30f + ;; code offset: 0x30d (local.get $1) - ;; code offset: 0x311 + ;; code offset: 0x30f (i32.const 1) ) ) - ;; code offset: 0x316 + ;; code offset: 0x314 (i32.const 2) ) + ;; code offset: 0x317 + (local.get $3) ) ) ) @@ -6231,23 +6233,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x4a6 (i32.add - ;; code offset: 0x49a - (local.get $5) - ;; code offset: 0x4a5 + ;; code offset: 0x4a3 (i32.shl - ;; code offset: 0x4a1 + ;; code offset: 0x49f (local.tee $0 - ;; code offset: 0x4a0 + ;; code offset: 0x49e (i32.sub - ;; code offset: 0x49c + ;; code offset: 0x49a (local.get $2) - ;; code offset: 0x49e + ;; code offset: 0x49c (i32.const 1) ) ) - ;; code offset: 0x4a3 + ;; code offset: 0x4a1 (i32.const 2) ) + ;; code offset: 0x4a4 + (local.get $5) ) ;; code offset: 0x4a7 (local.get $2) @@ -6340,23 +6342,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x4f1 (i32.add - ;; code offset: 0x4e5 - (local.get $1) - ;; code offset: 0x4f0 + ;; code offset: 0x4ee (i32.shl - ;; code offset: 0x4ec + ;; code offset: 0x4ea (local.tee $0 - ;; code offset: 0x4eb + ;; code offset: 0x4e9 (i32.add - ;; code offset: 0x4e7 + ;; code offset: 0x4e5 (local.get $0) - ;; code offset: 0x4e9 + ;; code offset: 0x4e7 (i32.const 1) ) ) - ;; code offset: 0x4ee + ;; code offset: 0x4ec (i32.const 2) ) + ;; code offset: 0x4ef + (local.get $1) ) ) ) @@ -6494,23 +6496,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x564 (i32.add - ;; code offset: 0x558 - (local.get $5) - ;; code offset: 0x563 + ;; code offset: 0x561 (i32.shl - ;; code offset: 0x55f + ;; code offset: 0x55d (local.tee $0 - ;; code offset: 0x55e + ;; code offset: 0x55c (i32.sub - ;; code offset: 0x55a + ;; code offset: 0x558 (local.get $2) - ;; code offset: 0x55c + ;; code offset: 0x55a (i32.const 1) ) ) - ;; code offset: 0x561 + ;; code offset: 0x55f (i32.const 2) ) + ;; code offset: 0x562 + (local.get $5) ) ;; code offset: 0x565 (local.get $2) @@ -6603,23 +6605,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x5af (i32.add - ;; code offset: 0x5a3 - (local.get $1) - ;; code offset: 0x5ae + ;; code offset: 0x5ac (i32.shl - ;; code offset: 0x5aa + ;; code offset: 0x5a8 (local.tee $0 - ;; code offset: 0x5a9 + ;; code offset: 0x5a7 (i32.add - ;; code offset: 0x5a5 + ;; code offset: 0x5a3 (local.get $0) - ;; code offset: 0x5a7 + ;; code offset: 0x5a5 (i32.const 1) ) ) - ;; code offset: 0x5ac + ;; code offset: 0x5aa (i32.const 2) ) + ;; code offset: 0x5ad + (local.get $1) ) ) ) @@ -6849,7 +6851,7 @@ file_names[ 4]: ;; custom section ".debug_loc", size 1073 ;; custom section ".debug_ranges", size 88 ;; custom section ".debug_abbrev", size 333 - ;; custom section ".debug_line", size 2642 + ;; custom section ".debug_line", size 2636 ;; custom section ".debug_str", size 434 ;; custom section "producers", size 135 ) From b9092036d97dfb39049147e8fc7747419592b6e5 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 10 Jul 2025 12:34:58 -0700 Subject: [PATCH 3/5] more carefully --- src/passes/LocalizeChildren.cpp | 27 +- test/lit/passes/O4_disable-bulk-memory.wast | 8 +- .../asyncify_mod-asyncify-never-unwind_O.wast | 6 +- .../inlining-optimizing_optimize-level=3.wast | 6284 ++++++++--------- test/lit/passes/localize-children.wast | 12 +- test/passes/O3_low-memory-unused_metrics.txt | 108 +- test/passes/fannkuch3_manyopts_dwarf.bin.txt | 1282 ++-- 7 files changed, 3860 insertions(+), 3867 deletions(-) diff --git a/src/passes/LocalizeChildren.cpp b/src/passes/LocalizeChildren.cpp index 47d4c828029..ae6776a7c99 100644 --- a/src/passes/LocalizeChildren.cpp +++ b/src/passes/LocalizeChildren.cpp @@ -15,6 +15,7 @@ */ #include "ir/localize.h" +#include "ir/properties.h" #include "pass.h" #include "wasm.h" @@ -28,13 +29,29 @@ struct LocalizeChildren : public WalkerPass> { } // TODO add other things that might benefit - void visitBinary(Expression* curr) { - ChildLocalizer localizer(curr, getFunction(), *getModule(), getPassOptions()); - auto* rep = localizer.getReplacement(); - if (rep != curr) { - replaceCurrent(rep); + void visitBinary(Binary* curr) { + // Consider localizing when we see something potentially optimizable, like + // a falling-through constant. + if (isFallingThroughConstant(curr->left) || + isFallingThroughConstant(curr->right)) { + ChildLocalizer localizer(curr, getFunction(), *getModule(), getPassOptions()); + auto* rep = localizer.getReplacement(); + if (rep != curr) { + replaceCurrent(rep); + } } } + +private: + // Check if something is a falling-through constant (but not a constant + // already). + bool isFallingThroughConstant(Expression* curr) { + if (Properties::isSingleConstantExpression(curr)) { + return false; + } + curr = Properties::getFallthrough(curr, getPassOptions(), *getModule()); + return Properties::isSingleConstantExpression(curr); + } }; Pass* createLocalizeChildrenPass() { return new LocalizeChildren(); } diff --git a/test/lit/passes/O4_disable-bulk-memory.wast b/test/lit/passes/O4_disable-bulk-memory.wast index a4a2281fb29..d75258a9640 100644 --- a/test/lit/passes/O4_disable-bulk-memory.wast +++ b/test/lit/passes/O4_disable-bulk-memory.wast @@ -2988,7 +2988,8 @@ ;; CHECK: (func $assembly/index/getBody (param $0 i32) (result i32) ;; CHECK-NEXT: (local $1 i32) ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $1 ;; CHECK-NEXT: (i32.load @@ -2996,11 +2997,11 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: (i32.shr_u ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.tee $1 @@ -3011,7 +3012,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (i32.load offset=8 diff --git a/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast b/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast index 6296f6d5840..eefdabe3438 100644 --- a/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast +++ b/test/lit/passes/asyncify_mod-asyncify-never-unwind_O.wast @@ -45,6 +45,9 @@ ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.or ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $__asyncify_state) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (i32.eq ;; CHECK-NEXT: (global.get $__asyncify_state) @@ -71,9 +74,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $__asyncify_state) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (call $import) diff --git a/test/lit/passes/inlining-optimizing_optimize-level=3.wast b/test/lit/passes/inlining-optimizing_optimize-level=3.wast index 9b759f6f39a..f6df7305620 100644 --- a/test/lit/passes/inlining-optimizing_optimize-level=3.wast +++ b/test/lit/passes/inlining-optimizing_optimize-level=3.wast @@ -2791,10 +2791,10 @@ ;; CHECK-NEXT: (i32.store offset=16 ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.load offset=48 ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 0) @@ -2878,13 +2878,13 @@ ;; CHECK-NEXT: (i32.ne ;; CHECK-NEXT: (i32.load8_s ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 10) @@ -4830,6 +4830,7 @@ ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.shl ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (i32.load8_s @@ -4839,7 +4840,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -5160,6 +5160,7 @@ ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (i32.shl ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (i32.load8_s @@ -5169,7 +5170,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -5445,81 +5445,158 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (block $__rjto$8 (result i32) - ;; CHECK-NEXT: (block $__rjti$8 - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (block $__rjti$7 (result i32) - ;; CHECK-NEXT: (block $__rjti$6 - ;; CHECK-NEXT: (block $__rjti$5 - ;; CHECK-NEXT: (block $__rjti$4 - ;; CHECK-NEXT: (block $__rjti$3 - ;; CHECK-NEXT: (block $switch-default120 - ;; CHECK-NEXT: (block $switch-case42 - ;; CHECK-NEXT: (block $switch-case41 - ;; CHECK-NEXT: (block $switch-case40 - ;; CHECK-NEXT: (block $switch-case39 - ;; CHECK-NEXT: (block $switch-case38 - ;; CHECK-NEXT: (block $switch-case37 - ;; CHECK-NEXT: (block $switch-case36 - ;; CHECK-NEXT: (block $switch-case34 - ;; CHECK-NEXT: (block $switch-case33 - ;; CHECK-NEXT: (block $switch-case29 - ;; CHECK-NEXT: (block $switch-case28 - ;; CHECK-NEXT: (block $switch-case27 - ;; CHECK-NEXT: (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -33) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 15) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (block $__rjto$8 (result i32) + ;; CHECK-NEXT: (block $__rjti$8 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (block $__rjti$7 (result i32) + ;; CHECK-NEXT: (block $__rjti$6 + ;; CHECK-NEXT: (block $__rjti$5 + ;; CHECK-NEXT: (block $__rjti$4 + ;; CHECK-NEXT: (block $__rjti$3 + ;; CHECK-NEXT: (block $switch-default120 + ;; CHECK-NEXT: (block $switch-case42 + ;; CHECK-NEXT: (block $switch-case41 + ;; CHECK-NEXT: (block $switch-case40 + ;; CHECK-NEXT: (block $switch-case39 + ;; CHECK-NEXT: (block $switch-case38 + ;; CHECK-NEXT: (block $switch-case37 + ;; CHECK-NEXT: (block $switch-case36 + ;; CHECK-NEXT: (block $switch-case34 + ;; CHECK-NEXT: (block $switch-case33 + ;; CHECK-NEXT: (block $switch-case29 + ;; CHECK-NEXT: (block $switch-case28 + ;; CHECK-NEXT: (block $switch-case27 + ;; CHECK-NEXT: (br_table $switch-case42 $switch-default120 $switch-case40 $switch-default120 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case41 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case29 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-default120 $switch-case42 $switch-default120 $switch-case37 $switch-case34 $switch-case42 $switch-case42 $switch-case42 $switch-default120 $switch-case34 $switch-default120 $switch-default120 $switch-default120 $switch-case38 $switch-case27 $switch-case33 $switch-case28 $switch-default120 $switch-default120 $switch-case39 $switch-default120 $switch-case36 $switch-default120 $switch-default120 $switch-case29 $switch-default120 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -33) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 65) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 65) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $switch-default26 - ;; CHECK-NEXT: (block $switch-case25 - ;; CHECK-NEXT: (block $switch-case24 - ;; CHECK-NEXT: (block $switch-case23 - ;; CHECK-NEXT: (block $switch-case22 - ;; CHECK-NEXT: (block $switch-case21 - ;; 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 $11) + ;; CHECK-NEXT: (block $switch-default26 + ;; CHECK-NEXT: (block $switch-case25 + ;; CHECK-NEXT: (block $switch-case24 + ;; CHECK-NEXT: (block $switch-case23 + ;; CHECK-NEXT: (block $switch-case22 + ;; CHECK-NEXT: (block $switch-case21 + ;; 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 $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store offset=4 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $17) + ;; 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: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store16 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (i32.store8 ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) @@ -5576,12 +5653,6 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store16 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) @@ -5590,1754 +5661,1673 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.const 120) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: (br $__rjti$3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: (br $__rjti$3) + ;; 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: (local.tee $7 + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in32 + ;; 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.and + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in32 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (call $_bitshift64Lshr + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (global.get $tempRet0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $17) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store offset=4 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $17) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; 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 $23) + ;; CHECK-NEXT: (local.get $8) + ;; 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: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: (br $__rjti$8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (global.set $tempRet0 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (global.get $tempRet0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$4) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 2048) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4092) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4093) + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.const 120) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (local.set $5 ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in32 - ;; 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.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 7) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $36) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $36) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; 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 $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (call $___errno_location) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__rjto$1 + ;; CHECK-NEXT: (block $__rjti$10 + ;; CHECK-NEXT: (loop $while-in2 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.load8_u offset=687 + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in32 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (call $_bitshift64Lshr - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br_if $while-in2 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 87) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (global.get $tempRet0) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 87) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (br_if $__rjti$10 + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 775) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; 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: (loop $while-in1 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (loop $while-in3 (result i32) + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; 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: (if (result i32) + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (br_if $while-in1 + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) + ;; CHECK-NEXT: (br $__rjti$5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (global.set $tempRet0 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (global.get $tempRet0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 2048) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4092) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4093) - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4101) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) + ;; CHECK-NEXT: (br $__rjti$5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load offset=4 ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $37) + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $39) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (i32.store ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.get $37) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $36) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const -1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$6) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $36) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; 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 $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$7 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (call $___errno_location) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.load + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $__rjto$1 - ;; CHECK-NEXT: (block $__rjti$10 - ;; CHECK-NEXT: (loop $while-in2 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.load8_u offset=687 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br_if $while-in2 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 87) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 87) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $__rjti$10 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 775) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 775) + ;; CHECK-NEXT: (f64.store + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (global.get $tempDoublePtr) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in1 - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (loop $while-in3 (result i32) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $30 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (global.get $tempDoublePtr) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4108) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 2048) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $28 ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4111) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $28 + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in3) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4114) + ;; CHECK-NEXT: (i32.const 4109) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in1 - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4101) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $37) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $39) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: (local.get $37) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const -1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$7 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.store - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $30 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $28 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (f64.store + ;; CHECK-NEXT: (global.get $tempDoublePtr) ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4108) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 2048) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $28 - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (global.get $tempDoublePtr) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4111) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $28 - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_u ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4114) - ;; CHECK-NEXT: (i32.const 4109) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.store - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (global.get $tempDoublePtr) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2146435072) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2146435072) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once49 (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.tee $25 - ;; CHECK-NEXT: (f64.add - ;; CHECK-NEXT: (local.tee $14 - ;; CHECK-NEXT: (call $_frexp - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (global.get $tempDoublePtr) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.tee $26 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (i32.const 2146435072) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2146435072) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 97) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once49 (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.tee $25 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (call $_frexp + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 12) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.get $25) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in54 - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in54 - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.tee $26 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 97) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (f64.add - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (f64.add - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 45) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; 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: (local.set $14 + ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.const 12) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 11) + ;; 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: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.get $25) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $38) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $38) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 43) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.le_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in56 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.const 8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ge + ;; CHECK-NEXT: (loop $while-in54 + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.mul ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 2147483648) + ;; CHECK-NEXT: (f64.const 16) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in54 + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.le - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const -2147483649) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.trunc_f64_s - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (f64.add + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $25) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (f64.add + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 45) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4075) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.convert_i32_s - ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (f64.eq - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: (if + ;; 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: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.lt_s + ;; 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: (local.get $24) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $24) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 46) + ;; CHECK-NEXT: (local.get $38) + ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $38) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in56 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.store8 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 43) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $8 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $40) - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.le_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $41) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in56 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ge + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.le + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const -2147483649) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.trunc_f64_s + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4075) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.convert_i32_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (f64.eq + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 46) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in56 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $40) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $41) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 65536) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once49 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 65536) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (if (result f64) ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.load + ;; 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: (f64.const 268435456) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once49 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $43) + ;; CHECK-NEXT: (local.get $44) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 28) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: (f64.const 268435456) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $43) - ;; CHECK-NEXT: (local.get $44) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in60 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.ge - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const 2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.const -2147483648) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (loop $while-in60 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (f64.le + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.const -2147483649) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (i32.const -2147483648) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.trunc_f64_s - ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.ge + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const 2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (f64.le + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.const -2147483649) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.const -2147483648) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.trunc_f64_s + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in60 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.tee $14 - ;; CHECK-NEXT: (f64.mul - ;; CHECK-NEXT: (f64.sub - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (f64.convert_i32_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 1e9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (f64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in62 - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 29) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 29) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.ge_u - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once63 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in66 - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (call $_bitshift64Shl - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (global.set $tempRet0 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (global.get $tempRet0) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in60 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.tee $14 + ;; CHECK-NEXT: (f64.mul + ;; CHECK-NEXT: (f64.sub + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (f64.convert_i32_u + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (f64.const 1e9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (call $___uremdi3 - ;; CHECK-NEXT: (local.get $12) - ;; 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: (f64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (call $___udivmoddi4 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.const 1000000000) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in62 + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 29) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 29) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in66 + ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.ge_u ;; CHECK-NEXT: (local.tee $11 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once63 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in66 + ;; CHECK-NEXT: (global.set $tempRet0 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.tee $20 + ;; CHECK-NEXT: (call $_bitshift64Shl + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.add + ;; 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: (i32.store + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (call $___uremdi3 + ;; CHECK-NEXT: (local.get $12) + ;; 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 $12 + ;; CHECK-NEXT: (call $___udivmoddi4 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.const 1000000000) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in66 + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once63 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once63 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (loop $while-in68 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in68) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in68 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (br_if $while-in62 + ;; CHECK-NEXT: (i32.gt_s ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in68) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in62 - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $19 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 6) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (i32.const 25) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $31 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.const 102) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (loop $while-in70 (result i32) - ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (local.set $19 ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 6) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once71 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (i32.const 25) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $34 - ;; CHECK-NEXT: (i32.shr_u - ;; CHECK-NEXT: (i32.const 1000000000) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $31 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.const 102) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in74 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.shr_u - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (loop $while-in70 (result i32) + ;; CHECK-NEXT: (local.set $18 + ;; 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 $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $do-once71 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $34 + ;; CHECK-NEXT: (i32.shr_u + ;; CHECK-NEXT: (i32.const 1000000000) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in74 + ;; CHECK-NEXT: (i32.store ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.shr_u + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $34) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in74 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once71 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $34) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in74 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) + ;; 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 $31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $21) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (then + ;; 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: (i32.load - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once71 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; 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 $31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $21) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; 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: (else - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; 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 $8) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once75 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in78 - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in78 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 10) + ;; 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 $8) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.sub - ;; 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 $26) - ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: (br_if $do-once75 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $31 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in78 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $34 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.const 103) + ;; CHECK-NEXT: (br_if $while-in78 + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 9216) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.rem_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in80 - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in80 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.sub + ;; 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 $26) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $31 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $34 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.const 103) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (i32.shl - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4092) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; 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: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 9216) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.rem_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in80 + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in80 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (i32.shl + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 4092) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: (then @@ -7351,817 +7341,686 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once81 - ;; CHECK-NEXT: (local.set $35 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.div_u - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (if (result f64) - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.tee $45 - ;; CHECK-NEXT: (i32.div_s - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; 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 $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (f64.const 0.5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.const 1) - ;; CHECK-NEXT: (f64.const 1.5) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $45) + ;; CHECK-NEXT: (block $do-once81 + ;; CHECK-NEXT: (local.set $35 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.div_u + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $25 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (f64.const 9007199254740994) - ;; CHECK-NEXT: (f64.const 9007199254740992) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $35) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.load8_s - ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (if (result f64) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.tee $45 + ;; CHECK-NEXT: (i32.div_s + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (f64.const 0.5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.const 1) + ;; CHECK-NEXT: (f64.const 1.5) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $45) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 45) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then ;; CHECK-NEXT: (local.set $25 - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (f64.const 9007199254740994) + ;; CHECK-NEXT: (f64.const 9007199254740992) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $35) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $14 - ;; CHECK-NEXT: (f64.neg - ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.load8_s + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 45) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $25 + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $14 + ;; CHECK-NEXT: (f64.neg + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (local.get $8) - ;; 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 $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $25) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 999999999) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in86 - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $8 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (local.get $8) + ;; 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 $14) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $25) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 999999999) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in86 + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.store + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in86 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 999999999) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (br_if $do-once81 + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in86 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 999999999) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in88 + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in88 + ;; CHECK-NEXT: (i32.ge_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once81 - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in88 - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in88 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; 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: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; 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 $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $35 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; 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 $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $26 + ;; CHECK-NEXT: (local.set $35 + ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-out89 - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (local.set $11 + ;; 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 $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $26 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-out89 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $26 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in90) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $26 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in90) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; 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 $34) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once91 (result i32) - ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; 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: (i32.and - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const -5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $34) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $19 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $19 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $do-once91 - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $do-once93 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (block $do-once91 (result i32) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const -5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $19 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $do-once91 + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once93) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.rem_u - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $26) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 0) + ;; 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 $11) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once93) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.rem_u + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $do-once93) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in96 + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in96 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.rem_u + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $do-once93) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in96 - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.mul + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in96 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 10) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.rem_u - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $19) + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $19) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.mul - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $19) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.tee $19 + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.tee $31 + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 102) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $15 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (call $_fmt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $35) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.lt_s ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; 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: (local.get $24) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $19 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.tee $31 - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 102) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $15 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (call $_fmt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $35) - ;; 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: (i32.const 2) ;; CHECK-NEXT: ) - ;; 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: (then + ;; CHECK-NEXT: (loop $while-in98 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in98 + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 31) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $24) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in98 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.store8 ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.shr_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 31) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 43) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in98 - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $15 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 31) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 43) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 65536) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $31) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.gt_u - ;; 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: (local.set $7 - ;; CHECK-NEXT: (call $_fmt_u - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $do-once103 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br_if $do-once103 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (br_if $do-once103 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in106 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $7 ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $15) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in106 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in102) + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $19) - ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and @@ -8174,62 +8033,93 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (i32.const 4143) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.get $28) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 65536) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $31) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in110 (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (call $_fmt_u - ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.gt_u + ;; 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: (local.set $7 + ;; CHECK-NEXT: (call $_fmt_u + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $do-once103 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br_if $do-once103 + ;; CHECK-NEXT: (i32.ne ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $22) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (loop $while-in112 ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $32) ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in112 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (br_if $do-once103 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: (local.get $22) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in106 + ;; CHECK-NEXT: (i32.store8 + ;; 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 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in106 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -8242,131 +8132,111 @@ ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $while-in110) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (br $while-in102) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 9) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (block $do-once99 - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $20 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $26) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; 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: (local.get $19) + ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if - ;; 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: (i32.const 0) - ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $27) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.get $32) - ;; CHECK-NEXT: (i32.const 48) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (i32.const 4143) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $do-once115 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eq - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in110 (result i32) + ;; CHECK-NEXT: (if + ;; 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: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (loop $while-in112 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in112 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and @@ -8379,934 +8249,1056 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.sub ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $18) - ;; CHECK-NEXT: (i32.le_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $while-in110) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $do-once115 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 9) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (block $do-once99 + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $20 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $26) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; 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: (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: (i32.const 0) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $do-once115 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eq + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (i32.le_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (i32.const 4143) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (br_if $do-once115 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in118 + ;; CHECK-NEXT: (i32.store8 + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 48) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in118 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (i32.const 4143) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (br_if $do-once115 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $27) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in118 - ;; CHECK-NEXT: (i32.store8 - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 48) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in118 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $22) + ;; CHECK-NEXT: (br_if $while-in114 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.lt_u + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $20) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $27) - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 18) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $do-once99 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: (local.get $15) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in114 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.lt_u - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $20) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $11) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $28) + ;; CHECK-NEXT: (local.tee $6 + ;; CHECK-NEXT: (f64.ne + ;; CHECK-NEXT: (local.get $14) + ;; CHECK-NEXT: (local.get $14) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $30) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4135) + ;; CHECK-NEXT: (i32.const 4139) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.const 4127) + ;; CHECK-NEXT: (i32.const 4131) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $10 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; 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 $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; 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: (local.tee $9 + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $23) + ;; 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: (i32.const 18) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 18) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $11) + ;; 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: (br_if $do-once99 + ;; 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 ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.or ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $24) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.shr_s ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: (i32.const 4091) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $28) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (f64.ne - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: (local.get $14) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (br $__rjti$8) + ;; CHECK-NEXT: ) + ;; 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: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $label$break$L8 + ;; CHECK-NEXT: (block $__rjti$23 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.ne ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $30) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in5 + ;; CHECK-NEXT: (br_if $__rjti$23 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4135) - ;; CHECK-NEXT: (i32.const 4139) - ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (br_if $while-in5 + ;; 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: ) ;; CHECK-NEXT: (i32.ne ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; 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 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.const 4127) - ;; CHECK-NEXT: (i32.const 4131) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $__rjti$23 + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $__rjto$06 + ;; CHECK-NEXT: (block $__rjti$07 + ;; CHECK-NEXT: (br_if $__rjti$07 + ;; CHECK-NEXT: (i32.le_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (loop $while-in38 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -2139062144) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const -2139062144) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 16843009) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in38 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjti$07) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$06) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (loop $while-in59 (result i32) + ;; CHECK-NEXT: (br_if $label$break$L8 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (i32.load8_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in59 + ;; CHECK-NEXT: (local.tee $9 + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $18 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $15 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; 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 $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: ) - ;; 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: (local.set $12 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.load + ;; 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 $11) - ;; 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: (loop $while-in125 + ;; CHECK-NEXT: (block $while-out124 + ;; CHECK-NEXT: (br_if $while-out124 + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $11 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (br_if $while-out124 ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (call $_wctomb + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $11) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 8) + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $11 + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br_if $while-in125 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.shr_s - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $17 + ;; CHECK-NEXT: (i32.const -1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$break$L1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) - ;; CHECK-NEXT: ) - ;; 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: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $label$break$L8 - ;; CHECK-NEXT: (block $__rjti$23 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (call $_pad + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (i32.const 32) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (local.set $6 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in5 - ;; CHECK-NEXT: (br_if $__rjti$23 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in5 - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (loop $while-in127 (result i32) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $__rjti$7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.load ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; 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: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (br_if $__rjti$7 + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.gt_s + ;; CHECK-NEXT: (local.tee $6 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (call $_wctomb + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $__rjti$23 - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $__rjto$06 - ;; CHECK-NEXT: (block $__rjti$07 - ;; CHECK-NEXT: (br_if $__rjti$07 - ;; CHECK-NEXT: (i32.le_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in38 ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -2139062144) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const -2139062144) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 16843009) + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in38 - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjti$07) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$06) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (loop $while-in59 (result i32) - ;; CHECK-NEXT: (br_if $label$break$L8 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.load8_u - ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $___fwritex + ;; CHECK-NEXT: (local.get $33) + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const 4) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in59 - ;; CHECK-NEXT: (local.tee $9 - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (br_if $while-in127 + ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (else ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $18 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $15 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $18) + ;; CHECK-NEXT: (i32.xor + ;; CHECK-NEXT: (local.get $9) + ;; CHECK-NEXT: (i32.const 8192) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $11 - ;; CHECK-NEXT: (i32.const 4091) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $10) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__rjto$8 + ;; CHECK-NEXT: (local.set $10 ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $16) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $16) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: (local.get $18) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $label$continue$L1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: (local.set $9 + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (i32.and + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.const -65537) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (i32.ge_s + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in125 - ;; CHECK-NEXT: (block $while-out124 - ;; CHECK-NEXT: (br_if $while-out124 - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $11 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-out124 - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (call $_wctomb - ;; CHECK-NEXT: (local.get $33) - ;; CHECK-NEXT: (local.get $11) + ;; CHECK-NEXT: (local.set $12 + ;; CHECK-NEXT: (if (result i32) + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.tee $12 + ;; CHECK-NEXT: (i32.ne + ;; CHECK-NEXT: (i32.or + ;; CHECK-NEXT: (i32.load + ;; CHECK-NEXT: (local.get $13) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.load offset=4 + ;; CHECK-NEXT: (local.get $13) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.gt_u - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (select ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in125 - ;; CHECK-NEXT: (i32.lt_u ;; CHECK-NEXT: (local.tee $5 ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $17 - ;; CHECK-NEXT: (i32.const -1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$break$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (loop $while-in127 (result i32) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $__rjti$7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $12) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (br_if $__rjti$7 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.gt_s - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (call $_wctomb - ;; CHECK-NEXT: (local.get $33) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (i32.sub + ;; CHECK-NEXT: (local.get $23) + ;; CHECK-NEXT: (local.tee $7 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $___fwritex - ;; CHECK-NEXT: (local.get $33) - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const 4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br_if $while-in127 - ;; CHECK-NEXT: (i32.gt_u + ;; CHECK-NEXT: (i32.lt_s ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.xor - ;; CHECK-NEXT: (local.get $9) - ;; CHECK-NEXT: (i32.const 8192) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $10 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (local.get $16) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $label$continue$L1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $9 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.const -65537) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: (i32.ge_s - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $12 - ;; CHECK-NEXT: (if (result i32) - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (local.tee $12 - ;; CHECK-NEXT: (i32.ne - ;; CHECK-NEXT: (i32.or - ;; CHECK-NEXT: (i32.load - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.load offset=4 - ;; CHECK-NEXT: (local.get $13) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.and - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.sub - ;; CHECK-NEXT: (local.get $23) - ;; CHECK-NEXT: (local.tee $7 - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (else + ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (else - ;; CHECK-NEXT: (local.set $7 ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (local.get $7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (i32.lt_s + ;; CHECK-NEXT: (local.get $12) + ;; CHECK-NEXT: (local.get $15) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $23) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $7) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (i32.lt_s - ;; CHECK-NEXT: (local.get $12) - ;; CHECK-NEXT: (local.get $15) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $_pad - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (i32.const 32) - ;; CHECK-NEXT: (local.tee $6 - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.tee $5 - ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: (local.get $8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/passes/localize-children.wast b/test/lit/passes/localize-children.wast index 2cb81f412e5..f43250ce150 100644 --- a/test/lit/passes/localize-children.wast +++ b/test/lit/passes/localize-children.wast @@ -22,24 +22,16 @@ ;; CHECK: (export "interactions" (func $interactions)) ;; CHECK: (func $add (result i32) - ;; CHECK-NEXT: (local $0 i32) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (call $add) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (call $add) ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; OPTS: (export "interactions" (func $interactions)) ;; OPTS: (func $add (result i32) - ;; OPTS-NEXT: (local $0 i32) - ;; OPTS-NEXT: (local.set $0 - ;; OPTS-NEXT: (call $add) - ;; OPTS-NEXT: ) ;; OPTS-NEXT: (i32.add - ;; OPTS-NEXT: (local.get $0) + ;; OPTS-NEXT: (call $add) ;; OPTS-NEXT: (i32.const 42) ;; OPTS-NEXT: ) ;; OPTS-NEXT: ) diff --git a/test/passes/O3_low-memory-unused_metrics.txt b/test/passes/O3_low-memory-unused_metrics.txt index ea68e95a46d..3117d77785d 100644 --- a/test/passes/O3_low-memory-unused_metrics.txt +++ b/test/passes/O3_low-memory-unused_metrics.txt @@ -9,14 +9,14 @@ total [table-data] : 0 [tables] : 0 [tags] : 0 - [total] : 1957 + [total] : 1953 [vars] : 9 - Binary : 240 + Binary : 238 Block : 68 Break : 90 Call : 22 CallIndirect : 1 - Const : 176 + Const : 174 Drop : 8 If : 27 Load : 311 @@ -199,10 +199,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 31) ) @@ -219,10 +219,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 139) ) @@ -239,10 +239,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 8) ) @@ -268,10 +268,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 0) ) @@ -288,10 +288,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 0) ) @@ -308,10 +308,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 0) ) @@ -328,10 +328,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 0) ) @@ -348,10 +348,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 0) ) @@ -401,10 +401,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (local.get $3) ) @@ -421,10 +421,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.const 3) ) @@ -476,10 +476,10 @@ total ) (i32.store8 (i32.add + (local.get $10) (i32.load offset=8 (local.get $2) ) - (local.get $10) ) (i32.or (i32.or @@ -542,10 +542,10 @@ total ) (i32.store8 (i32.add + (local.get $5) (i32.load offset=8 (local.get $2) ) - (local.get $5) ) (local.get $4) ) @@ -569,10 +569,10 @@ total ) (i32.store8 (i32.add + (local.get $5) (i32.load offset=8 (local.get $2) ) - (local.get $5) ) (i32.shr_u (local.get $4) @@ -580,12 +580,9 @@ total ) ) (local.set $4 - (i32.load16_u - (i32.add - (i32.load offset=28 - (local.get $2) - ) - (i32.const 6) + (i32.load16_u offset=6 + (i32.load offset=28 + (local.get $2) ) ) ) @@ -602,20 +599,17 @@ total ) (i32.store8 (i32.add + (local.get $5) (i32.load offset=8 (local.get $2) ) - (local.get $5) ) (local.get $4) ) (local.set $4 - (i32.load8_u - (i32.add - (i32.load offset=28 - (local.get $2) - ) - (i32.const 7) + (i32.load8_u offset=7 + (i32.load offset=28 + (local.get $2) ) ) ) @@ -632,10 +626,10 @@ total ) (i32.store8 (i32.add + (local.get $5) (i32.load offset=8 (local.get $2) ) - (local.get $5) ) (local.get $4) ) @@ -682,10 +676,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (local.get $3) ) @@ -709,10 +703,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (local.get $3) ) @@ -745,10 +739,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (local.get $3) ) @@ -772,10 +766,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.get $3) @@ -889,10 +883,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.tee $3 @@ -928,10 +922,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.xor (i32.or @@ -967,10 +961,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.get $3) @@ -990,10 +984,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.get $3) @@ -1018,10 +1012,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.get $3) @@ -1041,10 +1035,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (local.get $3) ) @@ -1105,10 +1099,10 @@ total (loop $label$28 (if (i32.eq - (local.get $3) (i32.load offset=12 (local.get $2) ) + (local.get $3) ) (then (block $label$30 @@ -1308,8 +1302,7 @@ total ) ) (if - (i32.ge_u - (local.get $6) + (i32.le_u (i32.load16_u offset=20 (local.tee $5 (i32.load offset=28 @@ -1317,6 +1310,7 @@ total ) ) ) + (local.get $6) ) (then (local.set $3 @@ -1443,10 +1437,10 @@ total (block $label$36 (if (i32.eq - (local.get $3) (i32.load offset=12 (local.get $2) ) + (local.get $3) ) (then (block $label$39 @@ -1756,10 +1750,10 @@ total (block $label$44 (if (i32.eq - (local.get $3) (i32.load offset=12 (local.get $2) ) + (local.get $3) ) (then (block $label$47 @@ -2215,10 +2209,10 @@ total ) (i32.store8 (i32.add + (local.get $4) (i32.load offset=8 (local.get $2) ) - (local.get $4) ) (i32.shr_u (local.get $3) @@ -2744,10 +2738,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (local.get $1) ) @@ -2769,10 +2763,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.shr_u (local.get $1) @@ -2797,10 +2791,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (local.get $1) ) @@ -2822,10 +2816,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (local.get $1) ) @@ -2847,10 +2841,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (local.get $1) ) @@ -2872,10 +2866,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.shr_u (local.get $1) @@ -2900,10 +2894,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (local.get $1) ) @@ -2928,10 +2922,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.shr_u (local.get $1) @@ -2951,10 +2945,10 @@ total ) (i32.store8 (i32.add + (local.get $3) (i32.load offset=8 (local.get $2) ) - (local.get $3) ) (i32.shr_u (local.get $1) @@ -2979,10 +2973,10 @@ total ) (i32.store8 (i32.add + (local.get $1) (i32.load offset=8 (local.get $2) ) - (local.get $1) ) (i32.shr_u (local.get $3) @@ -3003,10 +2997,10 @@ total ) (i32.store8 (i32.add + (local.get $1) (i32.load offset=8 (local.get $2) ) - (local.get $1) ) (local.get $3) ) diff --git a/test/passes/fannkuch3_manyopts_dwarf.bin.txt b/test/passes/fannkuch3_manyopts_dwarf.bin.txt index 27686ae6603..78fd4ed1193 100644 --- a/test/passes/fannkuch3_manyopts_dwarf.bin.txt +++ b/test/passes/fannkuch3_manyopts_dwarf.bin.txt @@ -2303,7 +2303,7 @@ Contains section .debug_info (851 bytes) Contains section .debug_loc (1073 bytes) Contains section .debug_ranges (88 bytes) Contains section .debug_abbrev (333 bytes) -Contains section .debug_line (2636 bytes) +Contains section .debug_line (2642 bytes) Contains section .debug_str (434 bytes) .debug_abbrev contents: @@ -3119,7 +3119,7 @@ Abbrev table for offset: 0x00000000 .debug_line contents: debug_line[0x00000000] Line table prologue: - total_length: 0x00000a48 + total_length: 0x00000a4e version: 4 prologue_length: 0x000000dd min_inst_length: 1 @@ -3247,26 +3247,26 @@ file_names[ 4]: 0x00000171: 00 DW_LNE_set_address (0x000000000000006a) 0x00000178: 03 DW_LNS_advance_line (39) -0x0000017a: 05 DW_LNS_set_column (16) -0x0000017c: 01 DW_LNS_copy - 0x000000000000006a 39 16 1 0 0 +0x0000017a: 06 DW_LNS_negate_stmt +0x0000017b: 01 DW_LNS_copy + 0x000000000000006a 39 4 1 0 0 is_stmt -0x0000017d: 00 DW_LNE_set_address (0x0000000000000073) -0x00000184: 05 DW_LNS_set_column (4) +0x0000017c: 00 DW_LNE_set_address (0x000000000000006c) +0x00000183: 05 DW_LNS_set_column (16) +0x00000185: 06 DW_LNS_negate_stmt 0x00000186: 01 DW_LNS_copy - 0x0000000000000073 39 4 1 0 0 + 0x000000000000006c 39 16 1 0 0 -0x00000187: 00 DW_LNE_set_address (0x0000000000000074) -0x0000018e: 06 DW_LNS_negate_stmt -0x0000018f: 01 DW_LNS_copy - 0x0000000000000074 39 4 1 0 0 is_stmt +0x00000187: 00 DW_LNE_set_address (0x0000000000000075) +0x0000018e: 05 DW_LNS_set_column (4) +0x00000190: 01 DW_LNS_copy + 0x0000000000000075 39 4 1 0 0 -0x00000190: 00 DW_LNE_set_address (0x0000000000000077) -0x00000197: 05 DW_LNS_set_column (23) -0x00000199: 06 DW_LNS_negate_stmt +0x00000191: 00 DW_LNE_set_address (0x0000000000000077) +0x00000198: 05 DW_LNS_set_column (23) 0x0000019a: 01 DW_LNS_copy 0x0000000000000077 39 23 1 0 0 @@ -3316,27 +3316,26 @@ file_names[ 4]: 0x000001e2: 00 DW_LNE_set_address (0x00000000000000a2) 0x000001e9: 03 DW_LNS_advance_line (45) -0x000001eb: 05 DW_LNS_set_column (18) -0x000001ed: 06 DW_LNS_negate_stmt -0x000001ee: 01 DW_LNS_copy - 0x00000000000000a2 45 18 1 0 0 +0x000001eb: 05 DW_LNS_set_column (10) +0x000001ed: 01 DW_LNS_copy + 0x00000000000000a2 45 10 1 0 0 is_stmt -0x000001ef: 00 DW_LNE_set_address (0x00000000000000ab) -0x000001f6: 05 DW_LNS_set_column (10) +0x000001ee: 00 DW_LNE_set_address (0x00000000000000a4) +0x000001f5: 05 DW_LNS_set_column (18) +0x000001f7: 06 DW_LNS_negate_stmt 0x000001f8: 01 DW_LNS_copy - 0x00000000000000ab 45 10 1 0 0 + 0x00000000000000a4 45 18 1 0 0 -0x000001f9: 00 DW_LNE_set_address (0x00000000000000ac) -0x00000200: 06 DW_LNS_negate_stmt -0x00000201: 01 DW_LNS_copy - 0x00000000000000ac 45 10 1 0 0 is_stmt +0x000001f9: 00 DW_LNE_set_address (0x00000000000000ad) +0x00000200: 05 DW_LNS_set_column (10) +0x00000202: 01 DW_LNS_copy + 0x00000000000000ad 45 10 1 0 0 -0x00000202: 00 DW_LNE_set_address (0x00000000000000af) -0x00000209: 05 DW_LNS_set_column (23) -0x0000020b: 06 DW_LNS_negate_stmt +0x00000203: 00 DW_LNE_set_address (0x00000000000000af) +0x0000020a: 05 DW_LNS_set_column (23) 0x0000020c: 01 DW_LNS_copy 0x00000000000000af 45 23 1 0 0 @@ -3510,131 +3509,130 @@ file_names[ 4]: 0x00000324: 00 DW_LNE_set_address (0x0000000000000190) -0x0000032b: 05 DW_LNS_set_column (35) +0x0000032b: 05 DW_LNS_set_column (27) 0x0000032d: 06 DW_LNS_negate_stmt 0x0000032e: 01 DW_LNS_copy - 0x0000000000000190 76 35 1 0 0 + 0x0000000000000190 76 27 1 0 0 -0x0000032f: 00 DW_LNE_set_address (0x0000000000000199) -0x00000336: 05 DW_LNS_set_column (27) +0x0000032f: 00 DW_LNE_set_address (0x0000000000000192) +0x00000336: 05 DW_LNS_set_column (35) 0x00000338: 01 DW_LNS_copy - 0x0000000000000199 76 27 1 0 0 + 0x0000000000000192 76 35 1 0 0 -0x00000339: 00 DW_LNE_set_address (0x000000000000019a) -0x00000340: 01 DW_LNS_copy - 0x000000000000019a 76 27 1 0 0 +0x00000339: 00 DW_LNE_set_address (0x000000000000019b) +0x00000340: 05 DW_LNS_set_column (27) +0x00000342: 01 DW_LNS_copy + 0x000000000000019b 76 27 1 0 0 -0x00000341: 00 DW_LNE_set_address (0x00000000000001a0) -0x00000348: 05 DW_LNS_set_column (25) -0x0000034a: 01 DW_LNS_copy +0x00000343: 00 DW_LNE_set_address (0x00000000000001a0) +0x0000034a: 05 DW_LNS_set_column (25) +0x0000034c: 01 DW_LNS_copy 0x00000000000001a0 76 25 1 0 0 -0x0000034b: 00 DW_LNE_set_address (0x00000000000001a3) -0x00000352: 03 DW_LNS_advance_line (75) -0x00000354: 05 DW_LNS_set_column (27) -0x00000356: 06 DW_LNS_negate_stmt -0x00000357: 01 DW_LNS_copy +0x0000034d: 00 DW_LNE_set_address (0x00000000000001a3) +0x00000354: 03 DW_LNS_advance_line (75) +0x00000356: 05 DW_LNS_set_column (27) +0x00000358: 06 DW_LNS_negate_stmt +0x00000359: 01 DW_LNS_copy 0x00000000000001a3 75 27 1 0 0 is_stmt -0x00000358: 00 DW_LNE_set_address (0x00000000000001a8) -0x0000035f: 05 DW_LNS_set_column (13) -0x00000361: 06 DW_LNS_negate_stmt -0x00000362: 01 DW_LNS_copy +0x0000035a: 00 DW_LNE_set_address (0x00000000000001a8) +0x00000361: 05 DW_LNS_set_column (13) +0x00000363: 06 DW_LNS_negate_stmt +0x00000364: 01 DW_LNS_copy 0x00000000000001a8 75 13 1 0 0 -0x00000363: 00 DW_LNE_set_address (0x00000000000001b0) -0x0000036a: 03 DW_LNS_advance_line (77) -0x0000036c: 06 DW_LNS_negate_stmt -0x0000036d: 01 DW_LNS_copy +0x00000365: 00 DW_LNE_set_address (0x00000000000001b0) +0x0000036c: 03 DW_LNS_advance_line (77) +0x0000036e: 06 DW_LNS_negate_stmt +0x0000036f: 01 DW_LNS_copy 0x00000000000001b0 77 13 1 0 0 is_stmt -0x0000036e: 00 DW_LNE_set_address (0x00000000000001b8) -0x00000375: 05 DW_LNS_set_column (22) -0x00000377: 06 DW_LNS_negate_stmt -0x00000378: 01 DW_LNS_copy +0x00000370: 00 DW_LNE_set_address (0x00000000000001b8) +0x00000377: 05 DW_LNS_set_column (22) +0x00000379: 06 DW_LNS_negate_stmt +0x0000037a: 01 DW_LNS_copy 0x00000000000001b8 77 22 1 0 0 -0x00000379: 00 DW_LNE_set_address (0x00000000000001bd) -0x00000380: 03 DW_LNS_advance_line (79) -0x00000382: 05 DW_LNS_set_column (16) -0x00000384: 06 DW_LNS_negate_stmt -0x00000385: 01 DW_LNS_copy +0x0000037b: 00 DW_LNE_set_address (0x00000000000001bd) +0x00000382: 03 DW_LNS_advance_line (79) +0x00000384: 05 DW_LNS_set_column (16) +0x00000386: 06 DW_LNS_negate_stmt +0x00000387: 01 DW_LNS_copy 0x00000000000001bd 79 16 1 0 0 is_stmt -0x00000386: 00 DW_LNE_set_address (0x00000000000001c5) -0x0000038d: 05 DW_LNS_set_column (14) -0x0000038f: 06 DW_LNS_negate_stmt -0x00000390: 01 DW_LNS_copy +0x00000388: 00 DW_LNE_set_address (0x00000000000001c5) +0x0000038f: 05 DW_LNS_set_column (14) +0x00000391: 06 DW_LNS_negate_stmt +0x00000392: 01 DW_LNS_copy 0x00000000000001c5 79 14 1 0 0 -0x00000391: 00 DW_LNE_set_address (0x00000000000001d4) -0x00000398: 05 DW_LNS_set_column (25) -0x0000039a: 01 DW_LNS_copy +0x00000393: 00 DW_LNE_set_address (0x00000000000001d4) +0x0000039a: 05 DW_LNS_set_column (25) +0x0000039c: 01 DW_LNS_copy 0x00000000000001d4 79 25 1 0 0 -0x0000039b: 00 DW_LNE_set_address (0x00000000000001db) -0x000003a2: 03 DW_LNS_advance_line (81) -0x000003a4: 05 DW_LNS_set_column (11) -0x000003a6: 06 DW_LNS_negate_stmt -0x000003a7: 01 DW_LNS_copy +0x0000039d: 00 DW_LNE_set_address (0x00000000000001db) +0x000003a4: 03 DW_LNS_advance_line (81) +0x000003a6: 05 DW_LNS_set_column (11) +0x000003a8: 06 DW_LNS_negate_stmt +0x000003a9: 01 DW_LNS_copy 0x00000000000001db 81 11 1 0 0 is_stmt -0x000003a8: 00 DW_LNE_set_address (0x00000000000001e0) -0x000003af: 03 DW_LNS_advance_line (66) -0x000003b1: 05 DW_LNS_set_column (16) -0x000003b3: 01 DW_LNS_copy +0x000003aa: 00 DW_LNE_set_address (0x00000000000001e0) +0x000003b1: 03 DW_LNS_advance_line (66) +0x000003b3: 05 DW_LNS_set_column (16) +0x000003b5: 01 DW_LNS_copy 0x00000000000001e0 66 16 1 0 0 is_stmt -0x000003b4: 00 DW_LNE_set_address (0x00000000000001e7) -0x000003bb: 03 DW_LNS_advance_line (74) -0x000003bd: 05 DW_LNS_set_column (22) -0x000003bf: 01 DW_LNS_copy +0x000003b6: 00 DW_LNE_set_address (0x00000000000001e7) +0x000003bd: 03 DW_LNS_advance_line (74) +0x000003bf: 05 DW_LNS_set_column (22) +0x000003c1: 01 DW_LNS_copy 0x00000000000001e7 74 22 1 0 0 is_stmt -0x000003c0: 00 DW_LNE_set_address (0x00000000000001f0) -0x000003c7: 03 DW_LNS_advance_line (37) -0x000003c9: 05 DW_LNS_set_column (4) -0x000003cb: 01 DW_LNS_copy +0x000003c2: 00 DW_LNE_set_address (0x00000000000001f0) +0x000003c9: 03 DW_LNS_advance_line (37) +0x000003cb: 05 DW_LNS_set_column (4) +0x000003cd: 01 DW_LNS_copy 0x00000000000001f0 37 4 1 0 0 is_stmt -0x000003cc: 00 DW_LNE_set_address (0x00000000000001f5) -0x000003d3: 03 DW_LNS_advance_line (39) -0x000003d5: 05 DW_LNS_set_column (16) -0x000003d7: 06 DW_LNS_negate_stmt -0x000003d8: 01 DW_LNS_copy - 0x00000000000001f5 39 16 1 0 0 +0x000003ce: 00 DW_LNE_set_address (0x00000000000001f5) +0x000003d5: 03 DW_LNS_advance_line (39) +0x000003d7: 01 DW_LNS_copy + 0x00000000000001f5 39 4 1 0 0 is_stmt -0x000003d9: 00 DW_LNE_set_address (0x00000000000001fe) -0x000003e0: 05 DW_LNS_set_column (4) +0x000003d8: 00 DW_LNE_set_address (0x00000000000001f7) +0x000003df: 05 DW_LNS_set_column (16) +0x000003e1: 06 DW_LNS_negate_stmt 0x000003e2: 01 DW_LNS_copy - 0x00000000000001fe 39 4 1 0 0 + 0x00000000000001f7 39 16 1 0 0 -0x000003e3: 00 DW_LNE_set_address (0x00000000000001ff) -0x000003ea: 06 DW_LNS_negate_stmt -0x000003eb: 01 DW_LNS_copy - 0x00000000000001ff 39 4 1 0 0 is_stmt +0x000003e3: 00 DW_LNE_set_address (0x0000000000000200) +0x000003ea: 05 DW_LNS_set_column (4) +0x000003ec: 01 DW_LNS_copy + 0x0000000000000200 39 4 1 0 0 -0x000003ec: 00 DW_LNE_set_address (0x0000000000000202) -0x000003f3: 05 DW_LNS_set_column (23) -0x000003f5: 06 DW_LNS_negate_stmt +0x000003ed: 00 DW_LNE_set_address (0x0000000000000202) +0x000003f4: 05 DW_LNS_set_column (23) 0x000003f6: 01 DW_LNS_copy 0x0000000000000202 39 23 1 0 0 @@ -3670,27 +3668,26 @@ file_names[ 4]: 0x00000426: 00 DW_LNE_set_address (0x0000000000000227) 0x0000042d: 03 DW_LNS_advance_line (45) -0x0000042f: 05 DW_LNS_set_column (18) -0x00000431: 06 DW_LNS_negate_stmt -0x00000432: 01 DW_LNS_copy - 0x0000000000000227 45 18 1 0 0 +0x0000042f: 05 DW_LNS_set_column (10) +0x00000431: 01 DW_LNS_copy + 0x0000000000000227 45 10 1 0 0 is_stmt -0x00000433: 00 DW_LNE_set_address (0x0000000000000230) -0x0000043a: 05 DW_LNS_set_column (10) +0x00000432: 00 DW_LNE_set_address (0x0000000000000229) +0x00000439: 05 DW_LNS_set_column (18) +0x0000043b: 06 DW_LNS_negate_stmt 0x0000043c: 01 DW_LNS_copy - 0x0000000000000230 45 10 1 0 0 + 0x0000000000000229 45 18 1 0 0 -0x0000043d: 00 DW_LNE_set_address (0x0000000000000231) -0x00000444: 06 DW_LNS_negate_stmt -0x00000445: 01 DW_LNS_copy - 0x0000000000000231 45 10 1 0 0 is_stmt +0x0000043d: 00 DW_LNE_set_address (0x0000000000000232) +0x00000444: 05 DW_LNS_set_column (10) +0x00000446: 01 DW_LNS_copy + 0x0000000000000232 45 10 1 0 0 -0x00000446: 00 DW_LNE_set_address (0x0000000000000234) -0x0000044d: 05 DW_LNS_set_column (23) -0x0000044f: 06 DW_LNS_negate_stmt +0x00000447: 00 DW_LNE_set_address (0x0000000000000234) +0x0000044e: 05 DW_LNS_set_column (23) 0x00000450: 01 DW_LNS_copy 0x0000000000000234 45 23 1 0 0 @@ -3851,776 +3848,777 @@ file_names[ 4]: 0x00000552: 00 DW_LNE_set_address (0x000000000000030d) -0x00000559: 05 DW_LNS_set_column (35) +0x00000559: 05 DW_LNS_set_column (27) 0x0000055b: 06 DW_LNS_negate_stmt 0x0000055c: 01 DW_LNS_copy - 0x000000000000030d 76 35 1 0 0 + 0x000000000000030d 76 27 1 0 0 -0x0000055d: 00 DW_LNE_set_address (0x0000000000000316) -0x00000564: 05 DW_LNS_set_column (27) +0x0000055d: 00 DW_LNE_set_address (0x000000000000030f) +0x00000564: 05 DW_LNS_set_column (35) 0x00000566: 01 DW_LNS_copy - 0x0000000000000316 76 27 1 0 0 + 0x000000000000030f 76 35 1 0 0 -0x00000567: 00 DW_LNE_set_address (0x0000000000000317) -0x0000056e: 01 DW_LNS_copy - 0x0000000000000317 76 27 1 0 0 +0x00000567: 00 DW_LNE_set_address (0x0000000000000318) +0x0000056e: 05 DW_LNS_set_column (27) +0x00000570: 01 DW_LNS_copy + 0x0000000000000318 76 27 1 0 0 -0x0000056f: 00 DW_LNE_set_address (0x000000000000031d) -0x00000576: 05 DW_LNS_set_column (25) -0x00000578: 01 DW_LNS_copy +0x00000571: 00 DW_LNE_set_address (0x000000000000031d) +0x00000578: 05 DW_LNS_set_column (25) +0x0000057a: 01 DW_LNS_copy 0x000000000000031d 76 25 1 0 0 -0x00000579: 00 DW_LNE_set_address (0x0000000000000320) -0x00000580: 03 DW_LNS_advance_line (75) -0x00000582: 05 DW_LNS_set_column (27) -0x00000584: 06 DW_LNS_negate_stmt -0x00000585: 01 DW_LNS_copy +0x0000057b: 00 DW_LNE_set_address (0x0000000000000320) +0x00000582: 03 DW_LNS_advance_line (75) +0x00000584: 05 DW_LNS_set_column (27) +0x00000586: 06 DW_LNS_negate_stmt +0x00000587: 01 DW_LNS_copy 0x0000000000000320 75 27 1 0 0 is_stmt -0x00000586: 00 DW_LNE_set_address (0x000000000000032d) -0x0000058d: 03 DW_LNS_advance_line (77) -0x0000058f: 05 DW_LNS_set_column (13) -0x00000591: 01 DW_LNS_copy +0x00000588: 00 DW_LNE_set_address (0x000000000000032d) +0x0000058f: 03 DW_LNS_advance_line (77) +0x00000591: 05 DW_LNS_set_column (13) +0x00000593: 01 DW_LNS_copy 0x000000000000032d 77 13 1 0 0 is_stmt -0x00000592: 00 DW_LNE_set_address (0x0000000000000335) -0x00000599: 05 DW_LNS_set_column (22) -0x0000059b: 06 DW_LNS_negate_stmt -0x0000059c: 01 DW_LNS_copy +0x00000594: 00 DW_LNE_set_address (0x0000000000000335) +0x0000059b: 05 DW_LNS_set_column (22) +0x0000059d: 06 DW_LNS_negate_stmt +0x0000059e: 01 DW_LNS_copy 0x0000000000000335 77 22 1 0 0 -0x0000059d: 00 DW_LNE_set_address (0x000000000000033a) -0x000005a4: 03 DW_LNS_advance_line (79) -0x000005a6: 05 DW_LNS_set_column (16) -0x000005a8: 06 DW_LNS_negate_stmt -0x000005a9: 01 DW_LNS_copy +0x0000059f: 00 DW_LNE_set_address (0x000000000000033a) +0x000005a6: 03 DW_LNS_advance_line (79) +0x000005a8: 05 DW_LNS_set_column (16) +0x000005aa: 06 DW_LNS_negate_stmt +0x000005ab: 01 DW_LNS_copy 0x000000000000033a 79 16 1 0 0 is_stmt -0x000005aa: 00 DW_LNE_set_address (0x0000000000000342) -0x000005b1: 05 DW_LNS_set_column (14) -0x000005b3: 06 DW_LNS_negate_stmt -0x000005b4: 01 DW_LNS_copy +0x000005ac: 00 DW_LNE_set_address (0x0000000000000342) +0x000005b3: 05 DW_LNS_set_column (14) +0x000005b5: 06 DW_LNS_negate_stmt +0x000005b6: 01 DW_LNS_copy 0x0000000000000342 79 14 1 0 0 -0x000005b5: 00 DW_LNE_set_address (0x0000000000000351) -0x000005bc: 05 DW_LNS_set_column (25) -0x000005be: 01 DW_LNS_copy +0x000005b7: 00 DW_LNE_set_address (0x0000000000000351) +0x000005be: 05 DW_LNS_set_column (25) +0x000005c0: 01 DW_LNS_copy 0x0000000000000351 79 25 1 0 0 -0x000005bf: 00 DW_LNE_set_address (0x0000000000000358) -0x000005c6: 03 DW_LNS_advance_line (81) -0x000005c8: 05 DW_LNS_set_column (11) -0x000005ca: 06 DW_LNS_negate_stmt -0x000005cb: 01 DW_LNS_copy +0x000005c1: 00 DW_LNE_set_address (0x0000000000000358) +0x000005c8: 03 DW_LNS_advance_line (81) +0x000005ca: 05 DW_LNS_set_column (11) +0x000005cc: 06 DW_LNS_negate_stmt +0x000005cd: 01 DW_LNS_copy 0x0000000000000358 81 11 1 0 0 is_stmt -0x000005cc: 00 DW_LNE_set_address (0x000000000000035d) -0x000005d3: 03 DW_LNS_advance_line (66) -0x000005d5: 05 DW_LNS_set_column (16) -0x000005d7: 01 DW_LNS_copy +0x000005ce: 00 DW_LNE_set_address (0x000000000000035d) +0x000005d5: 03 DW_LNS_advance_line (66) +0x000005d7: 05 DW_LNS_set_column (16) +0x000005d9: 01 DW_LNS_copy 0x000000000000035d 66 16 1 0 0 is_stmt -0x000005d8: 00 DW_LNE_set_address (0x0000000000000364) -0x000005df: 03 DW_LNS_advance_line (74) -0x000005e1: 05 DW_LNS_set_column (22) -0x000005e3: 01 DW_LNS_copy +0x000005da: 00 DW_LNE_set_address (0x0000000000000364) +0x000005e1: 03 DW_LNS_advance_line (74) +0x000005e3: 05 DW_LNS_set_column (22) +0x000005e5: 01 DW_LNS_copy 0x0000000000000364 74 22 1 0 0 is_stmt -0x000005e4: 00 DW_LNE_set_address (0x0000000000000372) -0x000005eb: 03 DW_LNS_advance_line (67) -0x000005ed: 05 DW_LNS_set_column (13) -0x000005ef: 01 DW_LNS_copy +0x000005e6: 00 DW_LNE_set_address (0x0000000000000372) +0x000005ed: 03 DW_LNS_advance_line (67) +0x000005ef: 05 DW_LNS_set_column (13) +0x000005f1: 01 DW_LNS_copy 0x0000000000000372 67 13 1 0 0 is_stmt -0x000005f0: 00 DW_LNE_set_address (0x0000000000000376) -0x000005f7: 03 DW_LNS_advance_line (68) -0x000005f9: 01 DW_LNS_copy +0x000005f2: 00 DW_LNE_set_address (0x0000000000000376) +0x000005f9: 03 DW_LNS_advance_line (68) +0x000005fb: 01 DW_LNS_copy 0x0000000000000376 68 13 1 0 0 is_stmt -0x000005fa: 00 DW_LNE_set_address (0x000000000000037a) -0x00000601: 03 DW_LNS_advance_line (69) -0x00000603: 01 DW_LNS_copy +0x000005fc: 00 DW_LNE_set_address (0x000000000000037a) +0x00000603: 03 DW_LNS_advance_line (69) +0x00000605: 01 DW_LNS_copy 0x000000000000037a 69 13 1 0 0 is_stmt -0x00000604: 00 DW_LNE_set_address (0x000000000000037e) -0x0000060b: 03 DW_LNS_advance_line (70) -0x0000060d: 01 DW_LNS_copy +0x00000606: 00 DW_LNE_set_address (0x000000000000037e) +0x0000060d: 03 DW_LNS_advance_line (70) +0x0000060f: 01 DW_LNS_copy 0x000000000000037e 70 13 1 0 0 is_stmt -0x0000060e: 00 DW_LNE_set_address (0x0000000000000381) -0x00000615: 00 DW_LNE_end_sequence +0x00000610: 00 DW_LNE_set_address (0x0000000000000381) +0x00000617: 00 DW_LNE_end_sequence 0x0000000000000381 70 13 1 0 0 is_stmt end_sequence -0x00000618: 00 DW_LNE_set_address (0x0000000000000383) -0x0000061f: 03 DW_LNS_advance_line (152) -0x00000622: 01 DW_LNS_copy +0x0000061a: 00 DW_LNE_set_address (0x0000000000000383) +0x00000621: 03 DW_LNS_advance_line (152) +0x00000624: 01 DW_LNS_copy 0x0000000000000383 152 0 1 0 0 is_stmt -0x00000623: 00 DW_LNE_set_address (0x000000000000039f) -0x0000062a: 03 DW_LNS_advance_line (153) -0x0000062c: 05 DW_LNS_set_column (17) -0x0000062e: 0a DW_LNS_set_prologue_end -0x0000062f: 01 DW_LNS_copy +0x00000625: 00 DW_LNE_set_address (0x000000000000039f) +0x0000062c: 03 DW_LNS_advance_line (153) +0x0000062e: 05 DW_LNS_set_column (17) +0x00000630: 0a DW_LNS_set_prologue_end +0x00000631: 01 DW_LNS_copy 0x000000000000039f 153 17 1 0 0 is_stmt prologue_end -0x00000630: 00 DW_LNE_set_address (0x00000000000003a6) -0x00000637: 05 DW_LNS_set_column (28) -0x00000639: 06 DW_LNS_negate_stmt -0x0000063a: 01 DW_LNS_copy +0x00000632: 00 DW_LNE_set_address (0x00000000000003a6) +0x00000639: 05 DW_LNS_set_column (28) +0x0000063b: 06 DW_LNS_negate_stmt +0x0000063c: 01 DW_LNS_copy 0x00000000000003a6 153 28 1 0 0 -0x0000063b: 00 DW_LNE_set_address (0x00000000000003ab) -0x00000642: 05 DW_LNS_set_column (23) -0x00000644: 01 DW_LNS_copy +0x0000063d: 00 DW_LNE_set_address (0x00000000000003ab) +0x00000644: 05 DW_LNS_set_column (23) +0x00000646: 01 DW_LNS_copy 0x00000000000003ab 153 23 1 0 0 -0x00000645: 00 DW_LNE_set_address (0x00000000000003b1) -0x0000064c: 03 DW_LNS_advance_line (155) -0x0000064e: 05 DW_LNS_set_column (10) -0x00000650: 06 DW_LNS_negate_stmt -0x00000651: 01 DW_LNS_copy +0x00000647: 00 DW_LNE_set_address (0x00000000000003b1) +0x0000064e: 03 DW_LNS_advance_line (155) +0x00000650: 05 DW_LNS_set_column (10) +0x00000652: 06 DW_LNS_negate_stmt +0x00000653: 01 DW_LNS_copy 0x00000000000003b1 155 10 1 0 0 is_stmt -0x00000652: 00 DW_LNE_set_address (0x00000000000003b2) -0x00000659: 05 DW_LNS_set_column (8) -0x0000065b: 06 DW_LNS_negate_stmt -0x0000065c: 01 DW_LNS_copy +0x00000654: 00 DW_LNE_set_address (0x00000000000003b2) +0x0000065b: 05 DW_LNS_set_column (8) +0x0000065d: 06 DW_LNS_negate_stmt +0x0000065e: 01 DW_LNS_copy 0x00000000000003b2 155 8 1 0 0 -0x0000065d: 00 DW_LNE_set_address (0x00000000000003b5) -0x00000664: 03 DW_LNS_advance_line (156) -0x00000666: 05 DW_LNS_set_column (7) -0x00000668: 06 DW_LNS_negate_stmt -0x00000669: 01 DW_LNS_copy +0x0000065f: 00 DW_LNE_set_address (0x00000000000003b5) +0x00000666: 03 DW_LNS_advance_line (156) +0x00000668: 05 DW_LNS_set_column (7) +0x0000066a: 06 DW_LNS_negate_stmt +0x0000066b: 01 DW_LNS_copy 0x00000000000003b5 156 7 1 0 0 is_stmt -0x0000066a: 00 DW_LNE_set_address (0x00000000000003c2) -0x00000671: 03 DW_LNS_advance_line (94) -0x00000673: 05 DW_LNS_set_column (18) -0x00000675: 01 DW_LNS_copy +0x0000066c: 00 DW_LNE_set_address (0x00000000000003c2) +0x00000673: 03 DW_LNS_advance_line (94) +0x00000675: 05 DW_LNS_set_column (18) +0x00000677: 01 DW_LNS_copy 0x00000000000003c2 94 18 1 0 0 is_stmt -0x00000676: 00 DW_LNE_set_address (0x00000000000003dc) -0x0000067d: 03 DW_LNS_advance_line (95) -0x0000067f: 05 DW_LNS_set_column (29) -0x00000681: 01 DW_LNS_copy +0x00000678: 00 DW_LNE_set_address (0x00000000000003dc) +0x0000067f: 03 DW_LNS_advance_line (95) +0x00000681: 05 DW_LNS_set_column (29) +0x00000683: 01 DW_LNS_copy 0x00000000000003dc 95 29 1 0 0 is_stmt -0x00000682: 00 DW_LNE_set_address (0x00000000000003de) -0x00000689: 03 DW_LNS_advance_line (98) -0x0000068b: 05 DW_LNS_set_column (19) -0x0000068d: 01 DW_LNS_copy +0x00000684: 00 DW_LNE_set_address (0x00000000000003de) +0x0000068b: 03 DW_LNS_advance_line (98) +0x0000068d: 05 DW_LNS_set_column (19) +0x0000068f: 01 DW_LNS_copy 0x00000000000003de 98 19 1 0 0 is_stmt -0x0000068e: 00 DW_LNE_set_address (0x00000000000003e5) -0x00000695: 03 DW_LNS_advance_line (97) -0x00000697: 05 DW_LNS_set_column (16) -0x00000699: 01 DW_LNS_copy +0x00000690: 00 DW_LNE_set_address (0x00000000000003e5) +0x00000697: 03 DW_LNS_advance_line (97) +0x00000699: 05 DW_LNS_set_column (16) +0x0000069b: 01 DW_LNS_copy 0x00000000000003e5 97 16 1 0 0 is_stmt -0x0000069a: 00 DW_LNE_set_address (0x00000000000003ec) -0x000006a1: 03 DW_LNS_advance_line (96) -0x000006a3: 01 DW_LNS_copy +0x0000069c: 00 DW_LNE_set_address (0x00000000000003ec) +0x000006a3: 03 DW_LNS_advance_line (96) +0x000006a5: 01 DW_LNS_copy 0x00000000000003ec 96 16 1 0 0 is_stmt -0x000006a4: 00 DW_LNE_set_address (0x00000000000003f7) -0x000006ab: 03 DW_LNS_advance_line (94) -0x000006ad: 05 DW_LNS_set_column (28) -0x000006af: 01 DW_LNS_copy +0x000006a6: 00 DW_LNE_set_address (0x00000000000003f7) +0x000006ad: 03 DW_LNS_advance_line (94) +0x000006af: 05 DW_LNS_set_column (28) +0x000006b1: 01 DW_LNS_copy 0x00000000000003f7 94 28 1 0 0 is_stmt -0x000006b0: 00 DW_LNE_set_address (0x00000000000003fc) -0x000006b7: 05 DW_LNS_set_column (18) -0x000006b9: 06 DW_LNS_negate_stmt -0x000006ba: 01 DW_LNS_copy +0x000006b2: 00 DW_LNE_set_address (0x00000000000003fc) +0x000006b9: 05 DW_LNS_set_column (18) +0x000006bb: 06 DW_LNS_negate_stmt +0x000006bc: 01 DW_LNS_copy 0x00000000000003fc 94 18 1 0 0 -0x000006bb: 00 DW_LNE_set_address (0x0000000000000401) -0x000006c2: 05 DW_LNS_set_column (4) -0x000006c4: 01 DW_LNS_copy +0x000006bd: 00 DW_LNE_set_address (0x0000000000000401) +0x000006c4: 05 DW_LNS_set_column (4) +0x000006c6: 01 DW_LNS_copy 0x0000000000000401 94 4 1 0 0 -0x000006c5: 00 DW_LNE_set_address (0x0000000000000409) -0x000006cc: 03 DW_LNS_advance_line (102) -0x000006ce: 05 DW_LNS_set_column (27) -0x000006d0: 06 DW_LNS_negate_stmt -0x000006d1: 01 DW_LNS_copy +0x000006c7: 00 DW_LNE_set_address (0x0000000000000409) +0x000006ce: 03 DW_LNS_advance_line (102) +0x000006d0: 05 DW_LNS_set_column (27) +0x000006d2: 06 DW_LNS_negate_stmt +0x000006d3: 01 DW_LNS_copy 0x0000000000000409 102 27 1 0 0 is_stmt -0x000006d2: 00 DW_LNE_set_address (0x000000000000040e) -0x000006d9: 05 DW_LNS_set_column (18) -0x000006db: 06 DW_LNS_negate_stmt -0x000006dc: 01 DW_LNS_copy +0x000006d4: 00 DW_LNE_set_address (0x000000000000040e) +0x000006db: 05 DW_LNS_set_column (18) +0x000006dd: 06 DW_LNS_negate_stmt +0x000006de: 01 DW_LNS_copy 0x000000000000040e 102 18 1 0 0 -0x000006dd: 00 DW_LNE_set_address (0x0000000000000414) -0x000006e4: 03 DW_LNS_advance_line (103) -0x000006e6: 06 DW_LNS_negate_stmt -0x000006e7: 01 DW_LNS_copy +0x000006df: 00 DW_LNE_set_address (0x0000000000000414) +0x000006e6: 03 DW_LNS_advance_line (103) +0x000006e8: 06 DW_LNS_negate_stmt +0x000006e9: 01 DW_LNS_copy 0x0000000000000414 103 18 1 0 0 is_stmt -0x000006e8: 00 DW_LNE_set_address (0x0000000000000420) -0x000006ef: 03 DW_LNS_advance_line (105) -0x000006f1: 01 DW_LNS_copy +0x000006ea: 00 DW_LNE_set_address (0x0000000000000420) +0x000006f1: 03 DW_LNS_advance_line (105) +0x000006f3: 01 DW_LNS_copy 0x0000000000000420 105 18 1 0 0 is_stmt -0x000006f2: 00 DW_LNE_set_address (0x0000000000000429) -0x000006f9: 03 DW_LNS_advance_line (106) -0x000006fb: 05 DW_LNS_set_column (7) -0x000006fd: 01 DW_LNS_copy +0x000006f4: 00 DW_LNE_set_address (0x0000000000000429) +0x000006fb: 03 DW_LNS_advance_line (106) +0x000006fd: 05 DW_LNS_set_column (7) +0x000006ff: 01 DW_LNS_copy 0x0000000000000429 106 7 1 0 0 is_stmt -0x000006fe: 00 DW_LNE_set_address (0x0000000000000431) -0x00000705: 05 DW_LNS_set_column (16) -0x00000707: 06 DW_LNS_negate_stmt -0x00000708: 01 DW_LNS_copy +0x00000700: 00 DW_LNE_set_address (0x0000000000000431) +0x00000707: 05 DW_LNS_set_column (16) +0x00000709: 06 DW_LNS_negate_stmt +0x0000070a: 01 DW_LNS_copy 0x0000000000000431 106 16 1 0 0 -0x00000709: 00 DW_LNE_set_address (0x0000000000000436) -0x00000710: 03 DW_LNS_advance_line (105) -0x00000712: 05 DW_LNS_set_column (24) -0x00000714: 06 DW_LNS_negate_stmt -0x00000715: 01 DW_LNS_copy +0x0000070b: 00 DW_LNE_set_address (0x0000000000000436) +0x00000712: 03 DW_LNS_advance_line (105) +0x00000714: 05 DW_LNS_set_column (24) +0x00000716: 06 DW_LNS_negate_stmt +0x00000717: 01 DW_LNS_copy 0x0000000000000436 105 24 1 0 0 is_stmt -0x00000716: 00 DW_LNE_set_address (0x000000000000043b) -0x0000071d: 05 DW_LNS_set_column (18) -0x0000071f: 06 DW_LNS_negate_stmt -0x00000720: 01 DW_LNS_copy +0x00000718: 00 DW_LNE_set_address (0x000000000000043b) +0x0000071f: 05 DW_LNS_set_column (18) +0x00000721: 06 DW_LNS_negate_stmt +0x00000722: 01 DW_LNS_copy 0x000000000000043b 105 18 1 0 0 -0x00000721: 00 DW_LNE_set_address (0x0000000000000461) -0x00000728: 03 DW_LNS_advance_line (112) -0x0000072a: 05 DW_LNS_set_column (13) -0x0000072c: 06 DW_LNS_negate_stmt -0x0000072d: 01 DW_LNS_copy +0x00000723: 00 DW_LNE_set_address (0x0000000000000461) +0x0000072a: 03 DW_LNS_advance_line (112) +0x0000072c: 05 DW_LNS_set_column (13) +0x0000072e: 06 DW_LNS_negate_stmt +0x0000072f: 01 DW_LNS_copy 0x0000000000000461 112 13 1 0 0 is_stmt -0x0000072e: 00 DW_LNE_set_address (0x0000000000000463) -0x00000735: 05 DW_LNS_set_column (26) -0x00000737: 06 DW_LNS_negate_stmt -0x00000738: 01 DW_LNS_copy +0x00000730: 00 DW_LNE_set_address (0x0000000000000463) +0x00000737: 05 DW_LNS_set_column (26) +0x00000739: 06 DW_LNS_negate_stmt +0x0000073a: 01 DW_LNS_copy 0x0000000000000463 112 26 1 0 0 -0x00000739: 00 DW_LNE_set_address (0x0000000000000470) -0x00000740: 05 DW_LNS_set_column (35) -0x00000742: 01 DW_LNS_copy +0x0000073b: 00 DW_LNE_set_address (0x0000000000000470) +0x00000742: 05 DW_LNS_set_column (35) +0x00000744: 01 DW_LNS_copy 0x0000000000000470 112 35 1 0 0 -0x00000743: 00 DW_LNE_set_address (0x0000000000000471) -0x0000074a: 05 DW_LNS_set_column (13) -0x0000074c: 01 DW_LNS_copy +0x00000745: 00 DW_LNE_set_address (0x0000000000000471) +0x0000074c: 05 DW_LNS_set_column (13) +0x0000074e: 01 DW_LNS_copy 0x0000000000000471 112 13 1 0 0 -0x0000074d: 00 DW_LNE_set_address (0x000000000000047f) -0x00000754: 03 DW_LNS_advance_line (111) -0x00000756: 05 DW_LNS_set_column (30) -0x00000758: 06 DW_LNS_negate_stmt -0x00000759: 01 DW_LNS_copy +0x0000074f: 00 DW_LNE_set_address (0x000000000000047f) +0x00000756: 03 DW_LNS_advance_line (111) +0x00000758: 05 DW_LNS_set_column (30) +0x0000075a: 06 DW_LNS_negate_stmt +0x0000075b: 01 DW_LNS_copy 0x000000000000047f 111 30 1 0 0 is_stmt -0x0000075a: 00 DW_LNE_set_address (0x0000000000000484) -0x00000761: 05 DW_LNS_set_column (24) -0x00000763: 06 DW_LNS_negate_stmt -0x00000764: 01 DW_LNS_copy +0x0000075c: 00 DW_LNE_set_address (0x0000000000000484) +0x00000763: 05 DW_LNS_set_column (24) +0x00000765: 06 DW_LNS_negate_stmt +0x00000766: 01 DW_LNS_copy 0x0000000000000484 111 24 1 0 0 -0x00000765: 00 DW_LNE_set_address (0x0000000000000489) -0x0000076c: 05 DW_LNS_set_column (10) -0x0000076e: 01 DW_LNS_copy +0x00000767: 00 DW_LNE_set_address (0x0000000000000489) +0x0000076e: 05 DW_LNS_set_column (10) +0x00000770: 01 DW_LNS_copy 0x0000000000000489 111 10 1 0 0 -0x0000076f: 00 DW_LNE_set_address (0x000000000000048e) -0x00000776: 03 DW_LNS_advance_line (113) -0x00000778: 06 DW_LNS_negate_stmt -0x00000779: 01 DW_LNS_copy +0x00000771: 00 DW_LNE_set_address (0x000000000000048e) +0x00000778: 03 DW_LNS_advance_line (113) +0x0000077a: 06 DW_LNS_negate_stmt +0x0000077b: 01 DW_LNS_copy 0x000000000000048e 113 10 1 0 0 is_stmt -0x0000077a: 00 DW_LNE_set_address (0x0000000000000491) -0x00000781: 03 DW_LNS_advance_line (118) -0x00000783: 05 DW_LNS_set_column (16) -0x00000785: 01 DW_LNS_copy +0x0000077c: 00 DW_LNE_set_address (0x0000000000000491) +0x00000783: 03 DW_LNS_advance_line (118) +0x00000785: 05 DW_LNS_set_column (16) +0x00000787: 01 DW_LNS_copy 0x0000000000000491 118 16 1 0 0 is_stmt -0x00000786: 00 DW_LNE_set_address (0x000000000000049a) -0x0000078d: 03 DW_LNS_advance_line (119) -0x0000078f: 05 DW_LNS_set_column (18) -0x00000791: 06 DW_LNS_negate_stmt -0x00000792: 01 DW_LNS_copy - 0x000000000000049a 119 18 1 0 0 +0x00000788: 00 DW_LNE_set_address (0x000000000000049a) +0x0000078f: 03 DW_LNS_advance_line (119) +0x00000791: 05 DW_LNS_set_column (10) +0x00000793: 01 DW_LNS_copy + 0x000000000000049a 119 10 1 0 0 is_stmt -0x00000793: 00 DW_LNE_set_address (0x00000000000004a3) -0x0000079a: 05 DW_LNS_set_column (10) -0x0000079c: 01 DW_LNS_copy - 0x00000000000004a3 119 10 1 0 0 +0x00000794: 00 DW_LNE_set_address (0x000000000000049c) +0x0000079b: 05 DW_LNS_set_column (18) +0x0000079d: 06 DW_LNS_negate_stmt +0x0000079e: 01 DW_LNS_copy + 0x000000000000049c 119 18 1 0 0 -0x0000079d: 00 DW_LNE_set_address (0x00000000000004a4) -0x000007a4: 06 DW_LNS_negate_stmt -0x000007a5: 01 DW_LNS_copy - 0x00000000000004a4 119 10 1 0 0 is_stmt +0x0000079f: 00 DW_LNE_set_address (0x00000000000004a5) +0x000007a6: 05 DW_LNS_set_column (10) +0x000007a8: 01 DW_LNS_copy + 0x00000000000004a5 119 10 1 0 0 -0x000007a6: 00 DW_LNE_set_address (0x00000000000004a7) -0x000007ad: 05 DW_LNS_set_column (23) -0x000007af: 06 DW_LNS_negate_stmt -0x000007b0: 01 DW_LNS_copy +0x000007a9: 00 DW_LNE_set_address (0x00000000000004a7) +0x000007b0: 05 DW_LNS_set_column (23) +0x000007b2: 01 DW_LNS_copy 0x00000000000004a7 119 23 1 0 0 -0x000007b1: 00 DW_LNE_set_address (0x00000000000004ac) -0x000007b8: 03 DW_LNS_advance_line (118) -0x000007ba: 05 DW_LNS_set_column (16) -0x000007bc: 06 DW_LNS_negate_stmt -0x000007bd: 01 DW_LNS_copy +0x000007b3: 00 DW_LNE_set_address (0x00000000000004ac) +0x000007ba: 03 DW_LNS_advance_line (118) +0x000007bc: 05 DW_LNS_set_column (16) +0x000007be: 06 DW_LNS_negate_stmt +0x000007bf: 01 DW_LNS_copy 0x00000000000004ac 118 16 1 0 0 is_stmt -0x000007be: 00 DW_LNE_set_address (0x00000000000004b9) -0x000007c5: 03 DW_LNS_advance_line (122) -0x000007c7: 01 DW_LNS_copy +0x000007c0: 00 DW_LNE_set_address (0x00000000000004b9) +0x000007c7: 03 DW_LNS_advance_line (122) +0x000007c9: 01 DW_LNS_copy 0x00000000000004b9 122 16 1 0 0 is_stmt -0x000007c8: 00 DW_LNE_set_address (0x00000000000004cd) -0x000007cf: 03 DW_LNS_advance_line (125) -0x000007d1: 05 DW_LNS_set_column (22) -0x000007d3: 01 DW_LNS_copy +0x000007ca: 00 DW_LNE_set_address (0x00000000000004cd) +0x000007d1: 03 DW_LNS_advance_line (125) +0x000007d3: 05 DW_LNS_set_column (22) +0x000007d5: 01 DW_LNS_copy 0x00000000000004cd 125 22 1 0 0 is_stmt -0x000007d4: 00 DW_LNE_set_address (0x00000000000004d4) -0x000007db: 03 DW_LNS_advance_line (126) -0x000007dd: 05 DW_LNS_set_column (27) -0x000007df: 01 DW_LNS_copy +0x000007d6: 00 DW_LNE_set_address (0x00000000000004d4) +0x000007dd: 03 DW_LNS_advance_line (126) +0x000007df: 05 DW_LNS_set_column (27) +0x000007e1: 01 DW_LNS_copy 0x00000000000004d4 126 27 1 0 0 is_stmt -0x000007e0: 00 DW_LNE_set_address (0x00000000000004dd) -0x000007e7: 03 DW_LNS_advance_line (127) -0x000007e9: 05 DW_LNS_set_column (16) -0x000007eb: 01 DW_LNS_copy +0x000007e2: 00 DW_LNE_set_address (0x00000000000004dd) +0x000007e9: 03 DW_LNS_advance_line (127) +0x000007eb: 05 DW_LNS_set_column (16) +0x000007ed: 01 DW_LNS_copy 0x00000000000004dd 127 16 1 0 0 is_stmt -0x000007ec: 00 DW_LNE_set_address (0x00000000000004e5) -0x000007f3: 05 DW_LNS_set_column (35) -0x000007f5: 06 DW_LNS_negate_stmt -0x000007f6: 01 DW_LNS_copy - 0x00000000000004e5 127 35 1 0 0 +0x000007ee: 00 DW_LNE_set_address (0x00000000000004e5) +0x000007f5: 05 DW_LNS_set_column (27) +0x000007f7: 06 DW_LNS_negate_stmt +0x000007f8: 01 DW_LNS_copy + 0x00000000000004e5 127 27 1 0 0 -0x000007f7: 00 DW_LNE_set_address (0x00000000000004ee) -0x000007fe: 05 DW_LNS_set_column (27) -0x00000800: 01 DW_LNS_copy - 0x00000000000004ee 127 27 1 0 0 +0x000007f9: 00 DW_LNE_set_address (0x00000000000004e7) +0x00000800: 05 DW_LNS_set_column (35) +0x00000802: 01 DW_LNS_copy + 0x00000000000004e7 127 35 1 0 0 -0x00000801: 00 DW_LNE_set_address (0x00000000000004ef) -0x00000808: 01 DW_LNS_copy - 0x00000000000004ef 127 27 1 0 0 +0x00000803: 00 DW_LNE_set_address (0x00000000000004f0) +0x0000080a: 05 DW_LNS_set_column (27) +0x0000080c: 01 DW_LNS_copy + 0x00000000000004f0 127 27 1 0 0 -0x00000809: 00 DW_LNE_set_address (0x00000000000004f5) -0x00000810: 05 DW_LNS_set_column (25) -0x00000812: 01 DW_LNS_copy +0x0000080d: 00 DW_LNE_set_address (0x00000000000004f5) +0x00000814: 05 DW_LNS_set_column (25) +0x00000816: 01 DW_LNS_copy 0x00000000000004f5 127 25 1 0 0 -0x00000813: 00 DW_LNE_set_address (0x00000000000004f8) -0x0000081a: 03 DW_LNS_advance_line (126) -0x0000081c: 05 DW_LNS_set_column (27) -0x0000081e: 06 DW_LNS_negate_stmt -0x0000081f: 01 DW_LNS_copy +0x00000817: 00 DW_LNE_set_address (0x00000000000004f8) +0x0000081e: 03 DW_LNS_advance_line (126) +0x00000820: 05 DW_LNS_set_column (27) +0x00000822: 06 DW_LNS_negate_stmt +0x00000823: 01 DW_LNS_copy 0x00000000000004f8 126 27 1 0 0 is_stmt -0x00000820: 00 DW_LNE_set_address (0x00000000000004fd) -0x00000827: 05 DW_LNS_set_column (13) -0x00000829: 06 DW_LNS_negate_stmt -0x0000082a: 01 DW_LNS_copy +0x00000824: 00 DW_LNE_set_address (0x00000000000004fd) +0x0000082b: 05 DW_LNS_set_column (13) +0x0000082d: 06 DW_LNS_negate_stmt +0x0000082e: 01 DW_LNS_copy 0x00000000000004fd 126 13 1 0 0 -0x0000082b: 00 DW_LNE_set_address (0x0000000000000505) -0x00000832: 03 DW_LNS_advance_line (128) -0x00000834: 06 DW_LNS_negate_stmt -0x00000835: 01 DW_LNS_copy +0x0000082f: 00 DW_LNE_set_address (0x0000000000000505) +0x00000836: 03 DW_LNS_advance_line (128) +0x00000838: 06 DW_LNS_negate_stmt +0x00000839: 01 DW_LNS_copy 0x0000000000000505 128 13 1 0 0 is_stmt -0x00000836: 00 DW_LNE_set_address (0x000000000000050d) -0x0000083d: 05 DW_LNS_set_column (22) -0x0000083f: 06 DW_LNS_negate_stmt -0x00000840: 01 DW_LNS_copy +0x0000083a: 00 DW_LNE_set_address (0x000000000000050d) +0x00000841: 05 DW_LNS_set_column (22) +0x00000843: 06 DW_LNS_negate_stmt +0x00000844: 01 DW_LNS_copy 0x000000000000050d 128 22 1 0 0 -0x00000841: 00 DW_LNE_set_address (0x0000000000000512) -0x00000848: 03 DW_LNS_advance_line (130) -0x0000084a: 05 DW_LNS_set_column (16) -0x0000084c: 06 DW_LNS_negate_stmt -0x0000084d: 01 DW_LNS_copy +0x00000845: 00 DW_LNE_set_address (0x0000000000000512) +0x0000084c: 03 DW_LNS_advance_line (130) +0x0000084e: 05 DW_LNS_set_column (16) +0x00000850: 06 DW_LNS_negate_stmt +0x00000851: 01 DW_LNS_copy 0x0000000000000512 130 16 1 0 0 is_stmt -0x0000084e: 00 DW_LNE_set_address (0x000000000000051a) -0x00000855: 05 DW_LNS_set_column (14) -0x00000857: 06 DW_LNS_negate_stmt -0x00000858: 01 DW_LNS_copy +0x00000852: 00 DW_LNE_set_address (0x000000000000051a) +0x00000859: 05 DW_LNS_set_column (14) +0x0000085b: 06 DW_LNS_negate_stmt +0x0000085c: 01 DW_LNS_copy 0x000000000000051a 130 14 1 0 0 -0x00000859: 00 DW_LNE_set_address (0x0000000000000529) -0x00000860: 05 DW_LNS_set_column (25) -0x00000862: 01 DW_LNS_copy +0x0000085d: 00 DW_LNE_set_address (0x0000000000000529) +0x00000864: 05 DW_LNS_set_column (25) +0x00000866: 01 DW_LNS_copy 0x0000000000000529 130 25 1 0 0 -0x00000863: 00 DW_LNE_set_address (0x0000000000000530) -0x0000086a: 03 DW_LNS_advance_line (133) -0x0000086c: 05 DW_LNS_set_column (11) -0x0000086e: 06 DW_LNS_negate_stmt -0x0000086f: 01 DW_LNS_copy +0x00000867: 00 DW_LNE_set_address (0x0000000000000530) +0x0000086e: 03 DW_LNS_advance_line (133) +0x00000870: 05 DW_LNS_set_column (11) +0x00000872: 06 DW_LNS_negate_stmt +0x00000873: 01 DW_LNS_copy 0x0000000000000530 133 11 1 0 0 is_stmt -0x00000870: 00 DW_LNE_set_address (0x0000000000000535) -0x00000877: 03 DW_LNS_advance_line (122) -0x00000879: 05 DW_LNS_set_column (16) -0x0000087b: 01 DW_LNS_copy +0x00000874: 00 DW_LNE_set_address (0x0000000000000535) +0x0000087b: 03 DW_LNS_advance_line (122) +0x0000087d: 05 DW_LNS_set_column (16) +0x0000087f: 01 DW_LNS_copy 0x0000000000000535 122 16 1 0 0 is_stmt -0x0000087c: 00 DW_LNE_set_address (0x000000000000053a) -0x00000883: 05 DW_LNS_set_column (14) -0x00000885: 06 DW_LNS_negate_stmt -0x00000886: 01 DW_LNS_copy +0x00000880: 00 DW_LNE_set_address (0x000000000000053a) +0x00000887: 05 DW_LNS_set_column (14) +0x00000889: 06 DW_LNS_negate_stmt +0x0000088a: 01 DW_LNS_copy 0x000000000000053a 122 14 1 0 0 -0x00000887: 00 DW_LNE_set_address (0x0000000000000540) -0x0000088e: 03 DW_LNS_advance_line (110) -0x00000890: 05 DW_LNS_set_column (11) -0x00000892: 06 DW_LNS_negate_stmt -0x00000893: 01 DW_LNS_copy +0x0000088b: 00 DW_LNE_set_address (0x0000000000000540) +0x00000892: 03 DW_LNS_advance_line (110) +0x00000894: 05 DW_LNS_set_column (11) +0x00000896: 06 DW_LNS_negate_stmt +0x00000897: 01 DW_LNS_copy 0x0000000000000540 110 11 1 0 0 is_stmt -0x00000894: 00 DW_LNE_set_address (0x000000000000054c) -0x0000089b: 03 DW_LNS_advance_line (113) -0x0000089d: 05 DW_LNS_set_column (10) -0x0000089f: 01 DW_LNS_copy +0x00000898: 00 DW_LNE_set_address (0x000000000000054c) +0x0000089f: 03 DW_LNS_advance_line (113) +0x000008a1: 05 DW_LNS_set_column (10) +0x000008a3: 01 DW_LNS_copy 0x000000000000054c 113 10 1 0 0 is_stmt -0x000008a0: 00 DW_LNE_set_address (0x000000000000054f) -0x000008a7: 03 DW_LNS_advance_line (118) -0x000008a9: 05 DW_LNS_set_column (16) -0x000008ab: 01 DW_LNS_copy +0x000008a4: 00 DW_LNE_set_address (0x000000000000054f) +0x000008ab: 03 DW_LNS_advance_line (118) +0x000008ad: 05 DW_LNS_set_column (16) +0x000008af: 01 DW_LNS_copy 0x000000000000054f 118 16 1 0 0 is_stmt -0x000008ac: 00 DW_LNE_set_address (0x0000000000000558) -0x000008b3: 03 DW_LNS_advance_line (119) -0x000008b5: 05 DW_LNS_set_column (18) -0x000008b7: 06 DW_LNS_negate_stmt -0x000008b8: 01 DW_LNS_copy - 0x0000000000000558 119 18 1 0 0 +0x000008b0: 00 DW_LNE_set_address (0x0000000000000558) +0x000008b7: 03 DW_LNS_advance_line (119) +0x000008b9: 05 DW_LNS_set_column (10) +0x000008bb: 01 DW_LNS_copy + 0x0000000000000558 119 10 1 0 0 is_stmt -0x000008b9: 00 DW_LNE_set_address (0x0000000000000561) -0x000008c0: 05 DW_LNS_set_column (10) -0x000008c2: 01 DW_LNS_copy - 0x0000000000000561 119 10 1 0 0 +0x000008bc: 00 DW_LNE_set_address (0x000000000000055a) +0x000008c3: 05 DW_LNS_set_column (18) +0x000008c5: 06 DW_LNS_negate_stmt +0x000008c6: 01 DW_LNS_copy + 0x000000000000055a 119 18 1 0 0 -0x000008c3: 00 DW_LNE_set_address (0x0000000000000562) -0x000008ca: 06 DW_LNS_negate_stmt -0x000008cb: 01 DW_LNS_copy - 0x0000000000000562 119 10 1 0 0 is_stmt +0x000008c7: 00 DW_LNE_set_address (0x0000000000000563) +0x000008ce: 05 DW_LNS_set_column (10) +0x000008d0: 01 DW_LNS_copy + 0x0000000000000563 119 10 1 0 0 -0x000008cc: 00 DW_LNE_set_address (0x0000000000000565) -0x000008d3: 05 DW_LNS_set_column (23) -0x000008d5: 06 DW_LNS_negate_stmt -0x000008d6: 01 DW_LNS_copy +0x000008d1: 00 DW_LNE_set_address (0x0000000000000565) +0x000008d8: 05 DW_LNS_set_column (23) +0x000008da: 01 DW_LNS_copy 0x0000000000000565 119 23 1 0 0 -0x000008d7: 00 DW_LNE_set_address (0x000000000000056a) -0x000008de: 03 DW_LNS_advance_line (118) -0x000008e0: 05 DW_LNS_set_column (16) -0x000008e2: 06 DW_LNS_negate_stmt -0x000008e3: 01 DW_LNS_copy +0x000008db: 00 DW_LNE_set_address (0x000000000000056a) +0x000008e2: 03 DW_LNS_advance_line (118) +0x000008e4: 05 DW_LNS_set_column (16) +0x000008e6: 06 DW_LNS_negate_stmt +0x000008e7: 01 DW_LNS_copy 0x000000000000056a 118 16 1 0 0 is_stmt -0x000008e4: 00 DW_LNE_set_address (0x0000000000000577) -0x000008eb: 03 DW_LNS_advance_line (122) -0x000008ed: 01 DW_LNS_copy +0x000008e8: 00 DW_LNE_set_address (0x0000000000000577) +0x000008ef: 03 DW_LNS_advance_line (122) +0x000008f1: 01 DW_LNS_copy 0x0000000000000577 122 16 1 0 0 is_stmt -0x000008ee: 00 DW_LNE_set_address (0x000000000000057c) -0x000008f5: 05 DW_LNS_set_column (14) -0x000008f7: 06 DW_LNS_negate_stmt -0x000008f8: 01 DW_LNS_copy +0x000008f2: 00 DW_LNE_set_address (0x000000000000057c) +0x000008f9: 05 DW_LNS_set_column (14) +0x000008fb: 06 DW_LNS_negate_stmt +0x000008fc: 01 DW_LNS_copy 0x000000000000057c 122 14 1 0 0 -0x000008f9: 00 DW_LNE_set_address (0x0000000000000585) -0x00000900: 03 DW_LNS_advance_line (125) -0x00000902: 05 DW_LNS_set_column (22) -0x00000904: 06 DW_LNS_negate_stmt -0x00000905: 01 DW_LNS_copy +0x000008fd: 00 DW_LNE_set_address (0x0000000000000585) +0x00000904: 03 DW_LNS_advance_line (125) +0x00000906: 05 DW_LNS_set_column (22) +0x00000908: 06 DW_LNS_negate_stmt +0x00000909: 01 DW_LNS_copy 0x0000000000000585 125 22 1 0 0 is_stmt -0x00000906: 00 DW_LNE_set_address (0x0000000000000592) -0x0000090d: 03 DW_LNS_advance_line (126) -0x0000090f: 05 DW_LNS_set_column (27) -0x00000911: 01 DW_LNS_copy +0x0000090a: 00 DW_LNE_set_address (0x0000000000000592) +0x00000911: 03 DW_LNS_advance_line (126) +0x00000913: 05 DW_LNS_set_column (27) +0x00000915: 01 DW_LNS_copy 0x0000000000000592 126 27 1 0 0 is_stmt -0x00000912: 00 DW_LNE_set_address (0x000000000000059b) -0x00000919: 03 DW_LNS_advance_line (127) -0x0000091b: 05 DW_LNS_set_column (16) -0x0000091d: 01 DW_LNS_copy +0x00000916: 00 DW_LNE_set_address (0x000000000000059b) +0x0000091d: 03 DW_LNS_advance_line (127) +0x0000091f: 05 DW_LNS_set_column (16) +0x00000921: 01 DW_LNS_copy 0x000000000000059b 127 16 1 0 0 is_stmt -0x0000091e: 00 DW_LNE_set_address (0x00000000000005a3) -0x00000925: 05 DW_LNS_set_column (35) -0x00000927: 06 DW_LNS_negate_stmt -0x00000928: 01 DW_LNS_copy - 0x00000000000005a3 127 35 1 0 0 +0x00000922: 00 DW_LNE_set_address (0x00000000000005a3) +0x00000929: 05 DW_LNS_set_column (27) +0x0000092b: 06 DW_LNS_negate_stmt +0x0000092c: 01 DW_LNS_copy + 0x00000000000005a3 127 27 1 0 0 -0x00000929: 00 DW_LNE_set_address (0x00000000000005ac) -0x00000930: 05 DW_LNS_set_column (27) -0x00000932: 01 DW_LNS_copy - 0x00000000000005ac 127 27 1 0 0 +0x0000092d: 00 DW_LNE_set_address (0x00000000000005a5) +0x00000934: 05 DW_LNS_set_column (35) +0x00000936: 01 DW_LNS_copy + 0x00000000000005a5 127 35 1 0 0 -0x00000933: 00 DW_LNE_set_address (0x00000000000005ad) -0x0000093a: 01 DW_LNS_copy - 0x00000000000005ad 127 27 1 0 0 +0x00000937: 00 DW_LNE_set_address (0x00000000000005ae) +0x0000093e: 05 DW_LNS_set_column (27) +0x00000940: 01 DW_LNS_copy + 0x00000000000005ae 127 27 1 0 0 -0x0000093b: 00 DW_LNE_set_address (0x00000000000005b3) -0x00000942: 05 DW_LNS_set_column (25) -0x00000944: 01 DW_LNS_copy +0x00000941: 00 DW_LNE_set_address (0x00000000000005b3) +0x00000948: 05 DW_LNS_set_column (25) +0x0000094a: 01 DW_LNS_copy 0x00000000000005b3 127 25 1 0 0 -0x00000945: 00 DW_LNE_set_address (0x00000000000005b6) -0x0000094c: 03 DW_LNS_advance_line (126) -0x0000094e: 05 DW_LNS_set_column (27) -0x00000950: 06 DW_LNS_negate_stmt -0x00000951: 01 DW_LNS_copy +0x0000094b: 00 DW_LNE_set_address (0x00000000000005b6) +0x00000952: 03 DW_LNS_advance_line (126) +0x00000954: 05 DW_LNS_set_column (27) +0x00000956: 06 DW_LNS_negate_stmt +0x00000957: 01 DW_LNS_copy 0x00000000000005b6 126 27 1 0 0 is_stmt -0x00000952: 00 DW_LNE_set_address (0x00000000000005bb) -0x00000959: 05 DW_LNS_set_column (13) -0x0000095b: 06 DW_LNS_negate_stmt -0x0000095c: 01 DW_LNS_copy +0x00000958: 00 DW_LNE_set_address (0x00000000000005bb) +0x0000095f: 05 DW_LNS_set_column (13) +0x00000961: 06 DW_LNS_negate_stmt +0x00000962: 01 DW_LNS_copy 0x00000000000005bb 126 13 1 0 0 -0x0000095d: 00 DW_LNE_set_address (0x00000000000005c3) -0x00000964: 03 DW_LNS_advance_line (128) -0x00000966: 06 DW_LNS_negate_stmt -0x00000967: 01 DW_LNS_copy +0x00000963: 00 DW_LNE_set_address (0x00000000000005c3) +0x0000096a: 03 DW_LNS_advance_line (128) +0x0000096c: 06 DW_LNS_negate_stmt +0x0000096d: 01 DW_LNS_copy 0x00000000000005c3 128 13 1 0 0 is_stmt -0x00000968: 00 DW_LNE_set_address (0x00000000000005cb) -0x0000096f: 05 DW_LNS_set_column (22) -0x00000971: 06 DW_LNS_negate_stmt -0x00000972: 01 DW_LNS_copy +0x0000096e: 00 DW_LNE_set_address (0x00000000000005cb) +0x00000975: 05 DW_LNS_set_column (22) +0x00000977: 06 DW_LNS_negate_stmt +0x00000978: 01 DW_LNS_copy 0x00000000000005cb 128 22 1 0 0 -0x00000973: 00 DW_LNE_set_address (0x00000000000005d0) -0x0000097a: 03 DW_LNS_advance_line (130) -0x0000097c: 05 DW_LNS_set_column (16) -0x0000097e: 06 DW_LNS_negate_stmt -0x0000097f: 01 DW_LNS_copy +0x00000979: 00 DW_LNE_set_address (0x00000000000005d0) +0x00000980: 03 DW_LNS_advance_line (130) +0x00000982: 05 DW_LNS_set_column (16) +0x00000984: 06 DW_LNS_negate_stmt +0x00000985: 01 DW_LNS_copy 0x00000000000005d0 130 16 1 0 0 is_stmt -0x00000980: 00 DW_LNE_set_address (0x00000000000005d8) -0x00000987: 05 DW_LNS_set_column (14) -0x00000989: 06 DW_LNS_negate_stmt -0x0000098a: 01 DW_LNS_copy +0x00000986: 00 DW_LNE_set_address (0x00000000000005d8) +0x0000098d: 05 DW_LNS_set_column (14) +0x0000098f: 06 DW_LNS_negate_stmt +0x00000990: 01 DW_LNS_copy 0x00000000000005d8 130 14 1 0 0 -0x0000098b: 00 DW_LNE_set_address (0x00000000000005e7) -0x00000992: 05 DW_LNS_set_column (25) -0x00000994: 01 DW_LNS_copy +0x00000991: 00 DW_LNE_set_address (0x00000000000005e7) +0x00000998: 05 DW_LNS_set_column (25) +0x0000099a: 01 DW_LNS_copy 0x00000000000005e7 130 25 1 0 0 -0x00000995: 00 DW_LNE_set_address (0x00000000000005ee) -0x0000099c: 03 DW_LNS_advance_line (133) -0x0000099e: 05 DW_LNS_set_column (11) -0x000009a0: 06 DW_LNS_negate_stmt -0x000009a1: 01 DW_LNS_copy +0x0000099b: 00 DW_LNE_set_address (0x00000000000005ee) +0x000009a2: 03 DW_LNS_advance_line (133) +0x000009a4: 05 DW_LNS_set_column (11) +0x000009a6: 06 DW_LNS_negate_stmt +0x000009a7: 01 DW_LNS_copy 0x00000000000005ee 133 11 1 0 0 is_stmt -0x000009a2: 00 DW_LNE_set_address (0x00000000000005f3) -0x000009a9: 03 DW_LNS_advance_line (122) -0x000009ab: 05 DW_LNS_set_column (16) -0x000009ad: 01 DW_LNS_copy +0x000009a8: 00 DW_LNE_set_address (0x00000000000005f3) +0x000009af: 03 DW_LNS_advance_line (122) +0x000009b1: 05 DW_LNS_set_column (16) +0x000009b3: 01 DW_LNS_copy 0x00000000000005f3 122 16 1 0 0 is_stmt -0x000009ae: 00 DW_LNE_set_address (0x00000000000005f8) -0x000009b5: 05 DW_LNS_set_column (14) -0x000009b7: 06 DW_LNS_negate_stmt -0x000009b8: 01 DW_LNS_copy +0x000009b4: 00 DW_LNE_set_address (0x00000000000005f8) +0x000009bb: 05 DW_LNS_set_column (14) +0x000009bd: 06 DW_LNS_negate_stmt +0x000009be: 01 DW_LNS_copy 0x00000000000005f8 122 14 1 0 0 -0x000009b9: 00 DW_LNE_set_address (0x00000000000005fe) -0x000009c0: 03 DW_LNS_advance_line (110) -0x000009c2: 05 DW_LNS_set_column (11) -0x000009c4: 06 DW_LNS_negate_stmt -0x000009c5: 01 DW_LNS_copy +0x000009bf: 00 DW_LNE_set_address (0x00000000000005fe) +0x000009c6: 03 DW_LNS_advance_line (110) +0x000009c8: 05 DW_LNS_set_column (11) +0x000009ca: 06 DW_LNS_negate_stmt +0x000009cb: 01 DW_LNS_copy 0x00000000000005fe 110 11 1 0 0 is_stmt -0x000009c6: 00 DW_LNE_set_address (0x0000000000000604) -0x000009cd: 03 DW_LNS_advance_line (138) -0x000009cf: 05 DW_LNS_set_column (4) -0x000009d1: 01 DW_LNS_copy +0x000009cc: 00 DW_LNE_set_address (0x0000000000000604) +0x000009d3: 03 DW_LNS_advance_line (138) +0x000009d5: 05 DW_LNS_set_column (4) +0x000009d7: 01 DW_LNS_copy 0x0000000000000604 138 4 1 0 0 is_stmt -0x000009d2: 00 DW_LNE_set_address (0x0000000000000608) -0x000009d9: 03 DW_LNS_advance_line (139) -0x000009db: 01 DW_LNS_copy +0x000009d8: 00 DW_LNE_set_address (0x0000000000000608) +0x000009df: 03 DW_LNS_advance_line (139) +0x000009e1: 01 DW_LNS_copy 0x0000000000000608 139 4 1 0 0 is_stmt -0x000009dc: 00 DW_LNE_set_address (0x0000000000000618) -0x000009e3: 03 DW_LNS_advance_line (142) -0x000009e5: 05 DW_LNS_set_column (20) -0x000009e7: 01 DW_LNS_copy +0x000009e2: 00 DW_LNE_set_address (0x0000000000000618) +0x000009e9: 03 DW_LNS_advance_line (142) +0x000009eb: 05 DW_LNS_set_column (20) +0x000009ed: 01 DW_LNS_copy 0x0000000000000618 142 20 1 0 0 is_stmt -0x000009e8: 00 DW_LNE_set_address (0x0000000000000620) -0x000009ef: 03 DW_LNS_advance_line (146) -0x000009f1: 01 DW_LNS_copy +0x000009ee: 00 DW_LNE_set_address (0x0000000000000620) +0x000009f5: 03 DW_LNS_advance_line (146) +0x000009f7: 01 DW_LNS_copy 0x0000000000000620 146 20 1 0 0 is_stmt -0x000009f2: 00 DW_LNE_set_address (0x0000000000000627) -0x000009f9: 03 DW_LNS_advance_line (147) -0x000009fb: 05 DW_LNS_set_column (7) -0x000009fd: 01 DW_LNS_copy +0x000009f8: 00 DW_LNE_set_address (0x0000000000000627) +0x000009ff: 03 DW_LNS_advance_line (147) +0x00000a01: 05 DW_LNS_set_column (7) +0x00000a03: 01 DW_LNS_copy 0x0000000000000627 147 7 1 0 0 is_stmt -0x000009fe: 00 DW_LNE_set_address (0x000000000000062b) -0x00000a05: 03 DW_LNS_advance_line (143) -0x00000a07: 05 DW_LNS_set_column (11) -0x00000a09: 01 DW_LNS_copy +0x00000a04: 00 DW_LNE_set_address (0x000000000000062b) +0x00000a0b: 03 DW_LNS_advance_line (143) +0x00000a0d: 05 DW_LNS_set_column (11) +0x00000a0f: 01 DW_LNS_copy 0x000000000000062b 143 11 1 0 0 is_stmt -0x00000a0a: 00 DW_LNE_set_address (0x000000000000062f) -0x00000a11: 05 DW_LNS_set_column (20) -0x00000a13: 06 DW_LNS_negate_stmt -0x00000a14: 01 DW_LNS_copy +0x00000a10: 00 DW_LNE_set_address (0x000000000000062f) +0x00000a17: 05 DW_LNS_set_column (20) +0x00000a19: 06 DW_LNS_negate_stmt +0x00000a1a: 01 DW_LNS_copy 0x000000000000062f 143 20 1 0 0 -0x00000a15: 00 DW_LNE_set_address (0x0000000000000634) -0x00000a1c: 05 DW_LNS_set_column (11) -0x00000a1e: 01 DW_LNS_copy +0x00000a1b: 00 DW_LNE_set_address (0x0000000000000634) +0x00000a22: 05 DW_LNS_set_column (11) +0x00000a24: 01 DW_LNS_copy 0x0000000000000634 143 11 1 0 0 -0x00000a1f: 00 DW_LNE_set_address (0x000000000000063b) -0x00000a26: 03 DW_LNS_advance_line (141) -0x00000a28: 05 DW_LNS_set_column (4) -0x00000a2a: 06 DW_LNS_negate_stmt -0x00000a2b: 01 DW_LNS_copy +0x00000a25: 00 DW_LNE_set_address (0x000000000000063b) +0x00000a2c: 03 DW_LNS_advance_line (141) +0x00000a2e: 05 DW_LNS_set_column (4) +0x00000a30: 06 DW_LNS_negate_stmt +0x00000a31: 01 DW_LNS_copy 0x000000000000063b 141 4 1 0 0 is_stmt -0x00000a2c: 00 DW_LNE_set_address (0x0000000000000641) -0x00000a33: 03 DW_LNS_advance_line (159) -0x00000a35: 01 DW_LNS_copy +0x00000a32: 00 DW_LNE_set_address (0x0000000000000641) +0x00000a39: 03 DW_LNS_advance_line (159) +0x00000a3b: 01 DW_LNS_copy 0x0000000000000641 159 4 1 0 0 is_stmt -0x00000a36: 00 DW_LNE_set_address (0x0000000000000658) -0x00000a3d: 03 DW_LNS_advance_line (161) -0x00000a3f: 05 DW_LNS_set_column (1) -0x00000a41: 01 DW_LNS_copy +0x00000a3c: 00 DW_LNE_set_address (0x0000000000000658) +0x00000a43: 03 DW_LNS_advance_line (161) +0x00000a45: 05 DW_LNS_set_column (1) +0x00000a47: 01 DW_LNS_copy 0x0000000000000658 161 1 1 0 0 is_stmt -0x00000a42: 00 DW_LNE_set_address (0x0000000000000662) -0x00000a49: 00 DW_LNE_end_sequence +0x00000a48: 00 DW_LNE_set_address (0x0000000000000662) +0x00000a4f: 00 DW_LNE_end_sequence 0x0000000000000662 161 1 1 0 0 is_stmt end_sequence @@ -4808,21 +4806,21 @@ file_names[ 4]: (i32.store ;; code offset: 0x76 (i32.add - ;; code offset: 0x73 + ;; code offset: 0x6a + (local.get $3) + ;; code offset: 0x75 (i32.shl - ;; code offset: 0x6f + ;; code offset: 0x71 (local.tee $1 - ;; code offset: 0x6c + ;; code offset: 0x6e (i32.load - ;; code offset: 0x6a + ;; code offset: 0x6c (local.get $0) ) ) - ;; code offset: 0x71 + ;; code offset: 0x73 (i32.const 2) ) - ;; code offset: 0x74 - (local.get $3) ) ;; code offset: 0x7c (local.tee $4 @@ -4883,23 +4881,23 @@ file_names[ 4]: (i32.store ;; code offset: 0xae (i32.add - ;; code offset: 0xab + ;; code offset: 0xa2 + (local.get $9) + ;; code offset: 0xad (i32.shl - ;; code offset: 0xa7 + ;; code offset: 0xa9 (local.tee $1 - ;; code offset: 0xa6 + ;; code offset: 0xa8 (i32.sub - ;; code offset: 0xa2 - (local.get $2) ;; code offset: 0xa4 + (local.get $2) + ;; code offset: 0xa6 (i32.const 1) ) ) - ;; code offset: 0xa9 + ;; code offset: 0xab (i32.const 2) ) - ;; code offset: 0xac - (local.get $9) ) ;; code offset: 0xaf (local.get $2) @@ -5207,23 +5205,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x19c (i32.add - ;; code offset: 0x199 + ;; code offset: 0x190 + (local.get $3) + ;; code offset: 0x19b (i32.shl - ;; code offset: 0x195 + ;; code offset: 0x197 (local.tee $1 - ;; code offset: 0x194 + ;; code offset: 0x196 (i32.add - ;; code offset: 0x190 - (local.get $1) ;; code offset: 0x192 + (local.get $1) + ;; code offset: 0x194 (i32.const 1) ) ) - ;; code offset: 0x197 + ;; code offset: 0x199 (i32.const 2) ) - ;; code offset: 0x19a - (local.get $3) ) ) ) @@ -5343,21 +5341,21 @@ file_names[ 4]: (i32.store ;; code offset: 0x201 (i32.add - ;; code offset: 0x1fe + ;; code offset: 0x1f5 + (local.get $3) + ;; code offset: 0x200 (i32.shl - ;; code offset: 0x1fa + ;; code offset: 0x1fc (local.tee $1 - ;; code offset: 0x1f7 + ;; code offset: 0x1f9 (i32.load - ;; code offset: 0x1f5 + ;; code offset: 0x1f7 (local.get $0) ) ) - ;; code offset: 0x1fc + ;; code offset: 0x1fe (i32.const 2) ) - ;; code offset: 0x1ff - (local.get $3) ) ;; code offset: 0x207 (local.tee $4 @@ -5409,23 +5407,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x233 (i32.add - ;; code offset: 0x230 + ;; code offset: 0x227 + (local.get $9) + ;; code offset: 0x232 (i32.shl - ;; code offset: 0x22c + ;; code offset: 0x22e (local.tee $1 - ;; code offset: 0x22b + ;; code offset: 0x22d (i32.sub - ;; code offset: 0x227 - (local.get $2) ;; code offset: 0x229 + (local.get $2) + ;; code offset: 0x22b (i32.const 1) ) ) - ;; code offset: 0x22e + ;; code offset: 0x230 (i32.const 2) ) - ;; code offset: 0x231 - (local.get $9) ) ;; code offset: 0x234 (local.get $2) @@ -5723,23 +5721,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x319 (i32.add - ;; code offset: 0x316 + ;; code offset: 0x30d + (local.get $3) + ;; code offset: 0x318 (i32.shl - ;; code offset: 0x312 + ;; code offset: 0x314 (local.tee $1 - ;; code offset: 0x311 + ;; code offset: 0x313 (i32.add - ;; code offset: 0x30d - (local.get $1) ;; code offset: 0x30f + (local.get $1) + ;; code offset: 0x311 (i32.const 1) ) ) - ;; code offset: 0x314 + ;; code offset: 0x316 (i32.const 2) ) - ;; code offset: 0x317 - (local.get $3) ) ) ) @@ -6233,23 +6231,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x4a6 (i32.add - ;; code offset: 0x4a3 + ;; code offset: 0x49a + (local.get $5) + ;; code offset: 0x4a5 (i32.shl - ;; code offset: 0x49f + ;; code offset: 0x4a1 (local.tee $0 - ;; code offset: 0x49e + ;; code offset: 0x4a0 (i32.sub - ;; code offset: 0x49a - (local.get $2) ;; code offset: 0x49c + (local.get $2) + ;; code offset: 0x49e (i32.const 1) ) ) - ;; code offset: 0x4a1 + ;; code offset: 0x4a3 (i32.const 2) ) - ;; code offset: 0x4a4 - (local.get $5) ) ;; code offset: 0x4a7 (local.get $2) @@ -6342,23 +6340,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x4f1 (i32.add - ;; code offset: 0x4ee + ;; code offset: 0x4e5 + (local.get $1) + ;; code offset: 0x4f0 (i32.shl - ;; code offset: 0x4ea + ;; code offset: 0x4ec (local.tee $0 - ;; code offset: 0x4e9 + ;; code offset: 0x4eb (i32.add - ;; code offset: 0x4e5 - (local.get $0) ;; code offset: 0x4e7 + (local.get $0) + ;; code offset: 0x4e9 (i32.const 1) ) ) - ;; code offset: 0x4ec + ;; code offset: 0x4ee (i32.const 2) ) - ;; code offset: 0x4ef - (local.get $1) ) ) ) @@ -6496,23 +6494,23 @@ file_names[ 4]: (i32.store ;; code offset: 0x564 (i32.add - ;; code offset: 0x561 + ;; code offset: 0x558 + (local.get $5) + ;; code offset: 0x563 (i32.shl - ;; code offset: 0x55d + ;; code offset: 0x55f (local.tee $0 - ;; code offset: 0x55c + ;; code offset: 0x55e (i32.sub - ;; code offset: 0x558 - (local.get $2) ;; code offset: 0x55a + (local.get $2) + ;; code offset: 0x55c (i32.const 1) ) ) - ;; code offset: 0x55f + ;; code offset: 0x561 (i32.const 2) ) - ;; code offset: 0x562 - (local.get $5) ) ;; code offset: 0x565 (local.get $2) @@ -6605,23 +6603,23 @@ file_names[ 4]: (i32.load ;; code offset: 0x5af (i32.add - ;; code offset: 0x5ac + ;; code offset: 0x5a3 + (local.get $1) + ;; code offset: 0x5ae (i32.shl - ;; code offset: 0x5a8 + ;; code offset: 0x5aa (local.tee $0 - ;; code offset: 0x5a7 + ;; code offset: 0x5a9 (i32.add - ;; code offset: 0x5a3 - (local.get $0) ;; code offset: 0x5a5 + (local.get $0) + ;; code offset: 0x5a7 (i32.const 1) ) ) - ;; code offset: 0x5aa + ;; code offset: 0x5ac (i32.const 2) ) - ;; code offset: 0x5ad - (local.get $1) ) ) ) @@ -6851,7 +6849,7 @@ file_names[ 4]: ;; custom section ".debug_loc", size 1073 ;; custom section ".debug_ranges", size 88 ;; custom section ".debug_abbrev", size 333 - ;; custom section ".debug_line", size 2636 + ;; custom section ".debug_line", size 2642 ;; custom section ".debug_str", size 434 ;; custom section "producers", size 135 ) From 0935bb9ba5735f7b88aab1f398755ddfa82deaa8 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 10 Jul 2025 12:36:12 -0700 Subject: [PATCH 4/5] format --- src/passes/LocalizeChildren.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/passes/LocalizeChildren.cpp b/src/passes/LocalizeChildren.cpp index ae6776a7c99..c431e5f91df 100644 --- a/src/passes/LocalizeChildren.cpp +++ b/src/passes/LocalizeChildren.cpp @@ -34,7 +34,8 @@ struct LocalizeChildren : public WalkerPass> { // a falling-through constant. if (isFallingThroughConstant(curr->left) || isFallingThroughConstant(curr->right)) { - ChildLocalizer localizer(curr, getFunction(), *getModule(), getPassOptions()); + ChildLocalizer localizer( + curr, getFunction(), *getModule(), getPassOptions()); auto* rep = localizer.getReplacement(); if (rep != curr) { replaceCurrent(rep); From afbc14b338a4b5d3d488caadca5c365040f07e56 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 10 Jul 2025 12:42:44 -0700 Subject: [PATCH 5/5] proper test --- test/lit/passes/localize-children.wast | 70 +++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 8 deletions(-) diff --git a/test/lit/passes/localize-children.wast b/test/lit/passes/localize-children.wast index f43250ce150..25788c0891d 100644 --- a/test/lit/passes/localize-children.wast +++ b/test/lit/passes/localize-children.wast @@ -19,26 +19,80 @@ ;; OPTS: (memory $memory 10 20) (memory $memory 10 20) + ;; CHECK: (export "interactions" (func $interactions)) - ;; CHECK: (func $add (result i32) + ;; CHECK: (func $fallthrough-const (result i32) + ;; CHECK-NEXT: (local $0 i32) + ;; CHECK-NEXT: (local $1 i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (call $fallthrough-const) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (call $fallthrough-const) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.add - ;; CHECK-NEXT: (call $add) - ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; OPTS: (export "interactions" (func $interactions)) - ;; OPTS: (func $add (result i32) + ;; OPTS: (func $fallthrough-const (result i32) + ;; OPTS-NEXT: (local $0 i32) + ;; OPTS-NEXT: (local $1 i32) + ;; OPTS-NEXT: (local.set $0 + ;; OPTS-NEXT: (call $fallthrough-const) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (local.set $1 + ;; OPTS-NEXT: (block (result i32) + ;; OPTS-NEXT: (drop + ;; OPTS-NEXT: (call $fallthrough-const) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (i32.const 42) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: (i32.add + ;; OPTS-NEXT: (local.get $0) + ;; OPTS-NEXT: (i32.const 42) + ;; OPTS-NEXT: ) + ;; OPTS-NEXT: ) + (func $fallthrough-const (result i32) + ;; We move the children out to locals, as there is a constant that looks + ;; promising to optimize. + (i32.add + (call $fallthrough-const) + (block (result i32) + (drop + (call $fallthrough-const) + ) + (i32.const 42) + ) + ) + ) + + ;; CHECK: (func $call-ignore (result i32) + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (call $call-ignore) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; OPTS: (func $call-ignore (result i32) ;; OPTS-NEXT: (i32.add - ;; OPTS-NEXT: (call $add) + ;; OPTS-NEXT: (call $call-ignore) ;; OPTS-NEXT: (i32.const 42) ;; OPTS-NEXT: ) ;; OPTS-NEXT: ) - (func $add (result i32) - ;; The call should be moved to a local. + (func $call-ignore (result i32) + ;; The call has effects, but we ignore it: we look for falling-through + ;; constants. (i32.add - (call $add) + (call $call-ignore) (i32.const 42) ) )