summaryrefslogtreecommitdiff
path: root/test/passes
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes')
-rw-r--r--test/passes/O.bin.txt6
-rw-r--r--test/passes/inlining-optimizing_optimize-level=3.txt6290
-rw-r--r--test/passes/optimize-instructions.txt399
-rw-r--r--test/passes/optimize-instructions.wast111
-rw-r--r--test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt6
5 files changed, 3559 insertions, 3253 deletions
diff --git a/test/passes/O.bin.txt b/test/passes/O.bin.txt
index ae3bda836..468615c7d 100644
--- a/test/passes/O.bin.txt
+++ b/test/passes/O.bin.txt
@@ -13,13 +13,13 @@
)
(i64.const 1)
(i64.mul
- (get_local $0)
(call $0
(i64.sub
(get_local $0)
(i64.const 1)
)
)
+ (get_local $0)
)
)
)
@@ -31,13 +31,13 @@
)
(i64.const 1)
(i64.mul
- (get_local $0)
(call $1
(i64.sub
(get_local $0)
(i64.const 1)
)
)
+ (get_local $0)
)
)
)
@@ -87,8 +87,8 @@
(loop $label$3
(set_local $1
(i64.mul
- (get_local $1)
(get_local $0)
+ (get_local $1)
)
)
(br_if $label$3
diff --git a/test/passes/inlining-optimizing_optimize-level=3.txt b/test/passes/inlining-optimizing_optimize-level=3.txt
index 5e498c475..0a2d39db3 100644
--- a/test/passes/inlining-optimizing_optimize-level=3.txt
+++ b/test/passes/inlining-optimizing_optimize-level=3.txt
@@ -2460,8 +2460,8 @@
)
(if
(i32.ne
- (get_local $10)
(get_local $5)
+ (get_local $10)
)
(block
(set_local $5
@@ -3305,3514 +3305,3509 @@
)
)
)
- (set_local $5
- (block $__rjto$8 (result i32)
- (block $__rjti$8
- (block $__rjti$7
- (block $__rjti$6
- (block $__rjti$5
- (block $__rjti$4
- (block $__rjti$3
- (block $switch-default120
- (block $switch-case42
- (block $switch-case41
- (block $switch-case40
- (block $switch-case39
- (block $switch-case38
- (block $switch-case37
- (block $switch-case36
- (block $switch-case34
- (block $switch-case33
- (block $switch-case29
- (block $switch-case28
- (block $switch-case27
- (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
- (i32.sub
- (tee_local $19
- (select
- (i32.and
- (tee_local $11
- (i32.load8_s
- (get_local $19)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (tee_local $6
+ (select
+ (tee_local $5
+ (i32.add
+ (tee_local $11
+ (select
+ (tee_local $13
+ (i32.sub
+ (block $__rjto$8 (result i32)
+ (block $__rjti$8
+ (block $__rjti$7
+ (block $__rjti$6
+ (block $__rjti$5
+ (block $__rjti$4
+ (block $__rjti$3
+ (block $switch-default120
+ (block $switch-case42
+ (block $switch-case41
+ (block $switch-case40
+ (block $switch-case39
+ (block $switch-case38
+ (block $switch-case37
+ (block $switch-case36
+ (block $switch-case34
+ (block $switch-case33
+ (block $switch-case29
+ (block $switch-case28
+ (block $switch-case27
+ (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
+ (i32.sub
+ (tee_local $19
+ (select
+ (i32.and
+ (tee_local $11
+ (i32.load8_s
+ (get_local $19)
+ )
+ )
+ (i32.const -33)
+ )
+ (get_local $11)
+ (i32.and
+ (i32.eq
+ (i32.and
+ (get_local $11)
+ (i32.const 15)
+ )
+ (i32.const 3)
+ )
+ (i32.ne
+ (get_local $9)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (i32.const 65)
+ )
+ )
+ )
+ (block $switch-default26
+ (block $switch-case25
+ (block $switch-case24
+ (block $switch-case23
+ (block $switch-case22
+ (block $switch-case21
+ (block $switch-case20
+ (block $switch-case19
+ (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
+ (get_local $9)
+ )
+ )
+ (i32.store
+ (i32.load
+ (get_local $14)
+ )
+ (get_local $17)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $14)
+ )
+ (get_local $17)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $5
+ (i32.load
+ (get_local $14)
+ )
+ )
+ (get_local $17)
+ )
+ (i32.store offset=4
+ (get_local $5)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $17)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store16
+ (i32.load
+ (get_local $14)
+ )
+ (get_local $17)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store8
+ (i32.load
+ (get_local $14)
+ )
+ (get_local $17)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (i32.load
+ (get_local $14)
+ )
+ (get_local $17)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (i32.store
+ (tee_local $5
+ (i32.load
+ (get_local $14)
+ )
+ )
+ (get_local $17)
+ )
+ (i32.store offset=4
+ (get_local $5)
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $17)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
+ (get_local $7)
+ )
+ (br $label$continue$L1)
)
- )
- (i32.const -33)
- )
- (get_local $11)
- (i32.and
- (i32.ne
- (get_local $9)
- (i32.const 0)
- )
- (i32.eq
- (i32.and
- (get_local $11)
- (i32.const 15)
+ (set_local $7
+ (i32.or
+ (get_local $12)
+ (i32.const 8)
+ )
+ )
+ (set_local $6
+ (select
+ (get_local $6)
+ (i32.const 8)
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 8)
+ )
+ )
)
- (i32.const 3)
+ (set_local $19
+ (i32.const 120)
+ )
+ (br $__rjti$3)
+ )
+ (set_local $7
+ (get_local $12)
)
+ (br $__rjti$3)
)
- )
- )
- (i32.const 65)
- )
- )
- )
- (block $switch-default26
- (block $switch-case25
- (block $switch-case24
- (block $switch-case23
- (block $switch-case22
- (block $switch-case21
- (block $switch-case20
- (block $switch-case19
- (br_table $switch-case19 $switch-case20 $switch-case21 $switch-case22 $switch-case23 $switch-default26 $switch-case24 $switch-case25 $switch-default26
- (get_local $9)
+ (if
+ (i32.or
+ (tee_local $7
+ (i32.load
+ (get_local $14)
)
)
- (i32.store
- (i32.load
+ (tee_local $8
+ (i32.load offset=4
(get_local $14)
)
- (get_local $17)
)
+ )
+ (block
(set_local $5
- (get_local $10)
- )
- (set_local $10
(get_local $7)
)
- (br $label$continue$L1)
- )
- (i32.store
- (i32.load
- (get_local $14)
+ (set_local $7
+ (get_local $8)
+ )
+ (set_local $8
+ (get_local $25)
+ )
+ (loop $while-in32
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $8)
+ (i32.const -1)
+ )
+ )
+ (i32.or
+ (i32.and
+ (get_local $5)
+ (i32.const 7)
+ )
+ (i32.const 48)
+ )
+ )
+ (br_if $while-in32
+ (i32.or
+ (tee_local $5
+ (call $_bitshift64Lshr
+ (get_local $5)
+ (get_local $7)
+ (i32.const 3)
+ )
+ )
+ (tee_local $7
+ (get_global $tempRet0)
+ )
+ )
+ )
)
- (get_local $17)
- )
- (set_local $5
- (get_local $10)
)
- (set_local $10
- (get_local $7)
+ (set_local $8
+ (get_local $25)
)
- (br $label$continue$L1)
)
- (i32.store
- (tee_local $5
- (i32.load
- (get_local $14)
- )
+ (if
+ (i32.and
+ (get_local $12)
+ (i32.const 8)
)
- (get_local $17)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $17)
- (i32.const 0)
+ (block
+ (set_local $7
+ (get_local $12)
+ )
+ (set_local $6
+ (select
+ (tee_local $12
+ (i32.add
+ (i32.sub
+ (get_local $39)
+ (get_local $8)
+ )
+ (i32.const 1)
+ )
+ )
+ (get_local $6)
+ (i32.lt_s
+ (get_local $6)
+ (get_local $12)
+ )
)
- (i32.const 31)
)
- (i32.const 31)
+ )
+ (set_local $7
+ (get_local $12)
)
)
(set_local $5
- (get_local $10)
+ (get_local $8)
)
- (set_local $10
- (get_local $7)
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
)
- (br $label$continue$L1)
+ (br $__rjti$8)
)
- (i32.store16
+ (set_local $5
(i32.load
(get_local $14)
)
- (get_local $17)
)
- (set_local $5
- (get_local $10)
+ (if
+ (i32.lt_s
+ (tee_local $7
+ (i32.load offset=4
+ (get_local $14)
+ )
+ )
+ (i32.const 0)
+ )
+ (block
+ (set_global $tempRet0
+ (i32.sub
+ (i32.sub
+ (i32.const 0)
+ (get_local $7)
+ )
+ (i32.gt_u
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.store
+ (get_local $14)
+ (tee_local $5
+ (i32.sub
+ (i32.const 0)
+ (get_local $5)
+ )
+ )
+ )
+ (i32.store offset=4
+ (get_local $14)
+ (tee_local $7
+ (get_global $tempRet0)
+ )
+ )
+ (set_local $8
+ (i32.const 1)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $__rjti$4)
+ )
)
- (set_local $10
- (get_local $7)
+ (set_local $9
+ (if (result i32)
+ (i32.and
+ (get_local $12)
+ (i32.const 2048)
+ )
+ (block (result i32)
+ (set_local $8
+ (i32.const 1)
+ )
+ (i32.const 4092)
+ )
+ (block (result i32)
+ (set_local $8
+ (tee_local $9
+ (i32.and
+ (get_local $12)
+ (i32.const 1)
+ )
+ )
+ )
+ (select
+ (i32.const 4093)
+ (i32.const 4091)
+ (get_local $9)
+ )
+ )
+ )
)
- (br $label$continue$L1)
+ (br $__rjti$4)
)
- (i32.store8
+ (set_local $5
(i32.load
(get_local $14)
)
- (get_local $17)
)
- (set_local $5
- (get_local $10)
+ (set_local $7
+ (i32.load offset=4
+ (get_local $14)
+ )
)
- (set_local $10
- (get_local $7)
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
)
- (br $label$continue$L1)
+ (br $__rjti$4)
)
- (i32.store
- (i32.load
+ (drop
+ (i32.load offset=4
(get_local $14)
)
- (get_local $17)
)
- (set_local $5
- (get_local $10)
- )
- (set_local $10
- (get_local $7)
- )
- (br $label$continue$L1)
- )
- (i32.store
- (tee_local $5
+ (i32.store8
+ (get_local $40)
(i32.load
(get_local $14)
)
)
- (get_local $17)
- )
- (i32.store offset=4
- (get_local $5)
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $17)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.const 31)
+ (set_local $7
+ (get_local $40)
+ )
+ (set_local $12
+ (get_local $8)
+ )
+ (set_local $11
+ (i32.const 1)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $__rjto$8
+ (get_local $25)
)
)
(set_local $5
- (get_local $10)
- )
- (set_local $10
- (get_local $7)
+ (call $_strerror
+ (i32.load
+ (call $___errno_location)
+ )
+ )
)
- (br $label$continue$L1)
+ (br $__rjti$5)
)
(set_local $5
- (get_local $10)
- )
- (set_local $10
- (get_local $7)
- )
- (br $label$continue$L1)
- )
- (set_local $7
- (i32.or
- (get_local $12)
- (i32.const 8)
- )
- )
- (set_local $6
- (select
- (get_local $6)
- (i32.const 8)
- (i32.gt_u
- (get_local $6)
- (i32.const 8)
+ (select
+ (tee_local $5
+ (i32.load
+ (get_local $14)
+ )
+ )
+ (i32.const 4101)
+ (get_local $5)
)
)
+ (br $__rjti$5)
)
- (set_local $19
- (i32.const 120)
- )
- (br $__rjti$3)
- )
- (set_local $7
- (get_local $12)
- )
- (br $__rjti$3)
- )
- (if
- (i32.or
- (tee_local $7
- (i32.load
+ (drop
+ (i32.load offset=4
(get_local $14)
)
)
- (tee_local $8
- (i32.load offset=4
+ (i32.store
+ (get_local $41)
+ (i32.load
(get_local $14)
)
)
- )
- (block
- (set_local $5
- (get_local $7)
+ (i32.store
+ (get_local $44)
+ (i32.const 0)
)
- (set_local $7
- (get_local $8)
+ (i32.store
+ (get_local $14)
+ (get_local $41)
)
(set_local $8
- (get_local $25)
- )
- (loop $while-in32
- (i32.store8
- (tee_local $8
- (i32.add
- (get_local $8)
- (i32.const -1)
- )
- )
- (i32.or
- (i32.and
- (get_local $5)
- (i32.const 7)
- )
- (i32.const 48)
- )
- )
- (br_if $while-in32
- (i32.or
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $7)
- (i32.const 3)
- )
- )
- (tee_local $7
- (get_global $tempRet0)
- )
- )
- )
+ (i32.const -1)
)
+ (br $__rjti$6)
)
- (set_local $8
- (get_local $25)
- )
- )
- (if
- (i32.and
- (get_local $12)
- (i32.const 8)
- )
- (block
- (set_local $7
- (get_local $12)
- )
- (set_local $6
- (select
- (tee_local $12
- (i32.add
- (i32.sub
- (get_local $39)
- (get_local $8)
- )
- (i32.const 1)
- )
- )
+ (if
+ (get_local $6)
+ (block
+ (set_local $8
(get_local $6)
- (i32.lt_s
- (get_local $6)
- (get_local $12)
- )
)
+ (br $__rjti$6)
)
- )
- (set_local $7
- (get_local $12)
- )
- )
- (set_local $5
- (get_local $8)
- )
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjti$8)
- )
- (set_local $5
- (i32.load
- (get_local $14)
- )
- )
- (if
- (i32.lt_s
- (tee_local $7
- (i32.load offset=4
- (get_local $14)
- )
- )
- (i32.const 0)
- )
- (block
- (set_global $tempRet0
- (i32.sub
- (i32.sub
- (i32.const 0)
- (get_local $7)
- )
- (i32.gt_u
- (get_local $5)
+ (block
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
(i32.const 0)
+ (get_local $12)
)
- )
- )
- (i32.store
- (get_local $14)
- (tee_local $5
- (i32.sub
+ (set_local $7
(i32.const 0)
- (get_local $5)
)
+ (br $__rjti$7)
)
)
- (i32.store offset=4
- (get_local $14)
- (tee_local $7
- (get_global $tempRet0)
- )
- )
- (set_local $8
- (i32.const 1)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjti$4)
)
- )
- (set_local $9
- (if (result i32)
- (i32.and
- (get_local $12)
- (i32.const 2048)
- )
- (block (result i32)
- (set_local $8
- (i32.const 1)
- )
- (i32.const 4092)
- )
- (block (result i32)
- (set_local $8
- (tee_local $9
- (i32.and
- (get_local $12)
- (i32.const 1)
- )
- )
- )
- (select
- (i32.const 4093)
- (i32.const 4091)
- (get_local $9)
- )
+ (set_local $15
+ (f64.load
+ (get_local $14)
)
)
- )
- (br $__rjti$4)
- )
- (set_local $5
- (i32.load
- (get_local $14)
- )
- )
- (set_local $7
- (i32.load offset=4
- (get_local $14)
- )
- )
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjti$4)
- )
- (drop
- (i32.load offset=4
- (get_local $14)
- )
- )
- (i32.store8
- (get_local $40)
- (i32.load
- (get_local $14)
- )
- )
- (set_local $7
- (get_local $40)
- )
- (set_local $12
- (get_local $8)
- )
- (set_local $11
- (i32.const 1)
- )
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjto$8
- (get_local $25)
- )
- )
- (set_local $5
- (call $_strerror
- (i32.load
- (call $___errno_location)
- )
- )
- )
- (br $__rjti$5)
- )
- (set_local $5
- (select
- (tee_local $5
- (i32.load
- (get_local $14)
- )
- )
- (i32.const 4101)
- (get_local $5)
- )
- )
- (br $__rjti$5)
- )
- (drop
- (i32.load offset=4
- (get_local $14)
- )
- )
- (i32.store
- (get_local $41)
- (i32.load
- (get_local $14)
- )
- )
- (i32.store
- (get_local $44)
- (i32.const 0)
- )
- (i32.store
- (get_local $14)
- (get_local $41)
- )
- (set_local $8
- (i32.const -1)
- )
- (br $__rjti$6)
- )
- (if
- (get_local $6)
- (block
- (set_local $8
- (get_local $6)
- )
- (br $__rjti$6)
- )
- (block
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (i32.const 0)
- (get_local $12)
- )
- (set_local $7
- (i32.const 0)
- )
- (br $__rjti$7)
- )
- )
- )
- (set_local $15
- (f64.load
- (get_local $14)
- )
- )
- (i32.store
- (get_local $21)
- (i32.const 0)
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $15)
- )
- (drop
- (i32.load
- (get_global $tempDoublePtr)
- )
- )
- (set_local $30
- (if (result i32)
- (i32.lt_s
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 0)
- )
- (block (result i32)
- (set_local $27
- (i32.const 1)
- )
- (set_local $15
- (f64.neg
- (get_local $15)
- )
- )
- (i32.const 4108)
- )
- (if (result i32)
- (i32.and
- (get_local $12)
- (i32.const 2048)
- )
- (block (result i32)
- (set_local $27
- (i32.const 1)
- )
- (i32.const 4111)
- )
- (block (result i32)
- (set_local $27
- (tee_local $5
- (i32.and
- (get_local $12)
- (i32.const 1)
- )
- )
- )
- (select
- (i32.const 4114)
- (i32.const 4109)
- (get_local $5)
- )
- )
- )
- )
- )
- (f64.store
- (get_global $tempDoublePtr)
- (get_local $15)
- )
- (drop
- (i32.load
- (get_global $tempDoublePtr)
- )
- )
- (set_local $7
- (if (result i32)
- (i32.lt_u
- (i32.and
- (i32.load offset=4
- (get_global $tempDoublePtr)
- )
- (i32.const 2146435072)
- )
- (i32.const 2146435072)
- )
- (block $do-once49 (result i32)
- (if
- (tee_local $5
- (f64.ne
- (tee_local $23
- (f64.mul
- (call $_frexp
- (get_local $15)
+ (i32.store
(get_local $21)
+ (i32.const 0)
)
- (f64.const 2)
- )
- )
- (f64.const 0)
- )
- )
- (i32.store
- (get_local $21)
- (i32.add
- (i32.load
- (get_local $21)
- )
- (i32.const -1)
- )
- )
- )
- (if
- (i32.eq
- (tee_local $24
- (i32.or
- (get_local $19)
- (i32.const 32)
- )
- )
- (i32.const 97)
- )
- (block
- (set_local $9
- (select
- (i32.add
- (get_local $30)
- (i32.const 9)
- )
- (get_local $30)
- (tee_local $13
- (i32.and
- (get_local $19)
- (i32.const 32)
- )
- )
- )
- )
- (set_local $15
- (if (result f64)
- (i32.or
- (i32.gt_u
- (get_local $6)
- (i32.const 11)
+ (f64.store
+ (get_global $tempDoublePtr)
+ (get_local $15)
)
- (i32.eqz
- (tee_local $5
- (i32.sub
- (i32.const 12)
- (get_local $6)
- )
+ (drop
+ (i32.load
+ (get_global $tempDoublePtr)
)
)
- )
- (get_local $23)
- (block (result f64)
- (set_local $15
- (f64.const 8)
- )
- (loop $while-in54
- (set_local $15
- (f64.mul
- (get_local $15)
- (f64.const 16)
- )
- )
- (br_if $while-in54
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
+ (set_local $30
+ (if (result i32)
+ (i32.lt_s
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
)
+ (i32.const 0)
)
- )
- )
- (if (result f64)
- (i32.eq
- (i32.load8_s
- (get_local $9)
- )
- (i32.const 45)
- )
- (f64.neg
- (f64.add
- (get_local $15)
- (f64.sub
- (f64.neg
- (get_local $23)
- )
- (get_local $15)
+ (block (result i32)
+ (set_local $27
+ (i32.const 1)
)
- )
- )
- (f64.sub
- (f64.add
- (get_local $23)
- (get_local $15)
- )
- (get_local $15)
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (tee_local $5
- (call $_fmt_u
- (tee_local $5
- (select
- (i32.sub
- (i32.const 0)
- (tee_local $7
- (i32.load
- (get_local $21)
- )
+ (set_local $15
+ (f64.neg
+ (get_local $15)
)
)
- (get_local $7)
- (i32.lt_s
- (get_local $7)
- (i32.const 0)
- )
+ (i32.const 4108)
)
- )
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
+ (if (result i32)
+ (i32.and
+ (get_local $12)
+ (i32.const 2048)
)
- (i32.const 31)
- )
- (i32.const 31)
- )
- (get_local $26)
- )
- )
- (get_local $26)
- )
- (block
- (i32.store8
- (get_local $42)
- (i32.const 48)
- )
- (set_local $5
- (get_local $42)
- )
- )
- )
- (set_local $11
- (i32.or
- (get_local $27)
- (i32.const 2)
- )
- )
- (i32.store8
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $7)
- (i32.const 31)
- )
- (i32.const 2)
- )
- (i32.const 43)
- )
- )
- (i32.store8
- (tee_local $8
- (i32.add
- (get_local $5)
- (i32.const -2)
- )
- )
- (i32.add
- (get_local $19)
- (i32.const 15)
- )
- )
- (set_local $19
- (i32.lt_s
- (get_local $6)
- (i32.const 1)
- )
- )
- (set_local $18
- (i32.eqz
- (i32.and
- (get_local $12)
- (i32.const 8)
- )
- )
- )
- (set_local $5
- (get_local $22)
- )
- (loop $while-in56
- (i32.store8
- (get_local $5)
- (i32.or
- (i32.load8_u
- (i32.add
- (tee_local $7
- (if (result i32)
- (f64.ne
- (get_local $15)
- (get_local $15)
+ (block (result i32)
+ (set_local $27
+ (i32.const 1)
)
- (i32.const -2147483648)
- (if (result i32)
- (f64.ge
- (get_local $15)
- (f64.const 2147483648)
- )
- (i32.const -2147483648)
- (if (result i32)
- (f64.le
- (get_local $15)
- (f64.const -2147483649)
- )
- (i32.const -2147483648)
- (i32.trunc_s/f64
- (get_local $15)
+ (i32.const 4111)
+ )
+ (block (result i32)
+ (set_local $27
+ (tee_local $5
+ (i32.and
+ (get_local $12)
+ (i32.const 1)
)
)
)
+ (select
+ (i32.const 4114)
+ (i32.const 4109)
+ (get_local $5)
+ )
)
)
- (i32.const 4075)
)
)
- (get_local $13)
- )
- )
- (set_local $15
- (f64.mul
- (f64.sub
+ (f64.store
+ (get_global $tempDoublePtr)
(get_local $15)
- (f64.convert_s/i32
- (get_local $7)
- )
)
- (f64.const 16)
- )
- )
- (set_local $5
- (if (result i32)
- (i32.eq
- (i32.sub
- (tee_local $7
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- (get_local $36)
- )
- (i32.const 1)
- )
- (if (result i32)
- (i32.and
- (get_local $18)
- (i32.and
- (get_local $19)
- (f64.eq
- (get_local $15)
- (f64.const 0)
- )
- )
- )
- (get_local $7)
- (block (result i32)
- (i32.store8
- (get_local $7)
- (i32.const 46)
- )
- (i32.add
- (get_local $5)
- (i32.const 2)
- )
+ (drop
+ (i32.load
+ (get_global $tempDoublePtr)
)
)
- (get_local $7)
- )
- )
- (br_if $while-in56
- (f64.ne
- (get_local $15)
- (f64.const 0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $7
- (i32.add
- (tee_local $6
- (select
- (i32.sub
- (i32.add
- (get_local $47)
- (get_local $6)
- )
- (get_local $8)
- )
- (i32.add
- (i32.sub
- (get_local $45)
- (get_local $8)
- )
- (get_local $5)
- )
- (i32.and
- (i32.ne
- (get_local $6)
- (i32.const 0)
- )
- (i32.lt_s
- (i32.add
- (get_local $46)
- (get_local $5)
+ (set_local $7
+ (if (result i32)
+ (i32.lt_u
+ (i32.and
+ (i32.load offset=4
+ (get_global $tempDoublePtr)
)
- (get_local $6)
+ (i32.const 2146435072)
)
+ (i32.const 2146435072)
)
- )
- )
- (get_local $11)
- )
- )
- (get_local $12)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $9)
- (get_local $11)
- (get_local $0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $7)
- (i32.xor
- (get_local $12)
- (i32.const 65536)
- )
- )
- (set_local $5
- (i32.sub
- (get_local $5)
- (get_local $36)
- )
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $22)
- (get_local $5)
- (get_local $0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.sub
- (get_local $6)
- (i32.add
- (get_local $5)
- (tee_local $5
- (i32.sub
- (get_local $26)
- (get_local $8)
- )
- )
- )
- )
- (i32.const 0)
- (i32.const 0)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $8)
- (get_local $5)
- (get_local $0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $7)
- (i32.xor
- (get_local $12)
- (i32.const 8192)
- )
- )
- (br $do-once49
- (select
- (get_local $16)
- (get_local $7)
- (i32.lt_s
- (get_local $7)
- (get_local $16)
- )
- )
- )
- )
- )
- (set_local $15
- (if (result f64)
- (get_local $5)
- (block (result f64)
- (i32.store
- (get_local $21)
- (tee_local $5
- (i32.add
- (i32.load
- (get_local $21)
- )
- (i32.const -28)
- )
- )
- )
- (f64.mul
- (get_local $23)
- (f64.const 268435456)
- )
- )
- (block (result f64)
- (set_local $5
- (i32.load
- (get_local $21)
- )
- )
- (get_local $23)
- )
- )
- )
- (set_local $7
- (tee_local $8
- (select
- (get_local $48)
- (get_local $49)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
- )
- )
- )
- )
- (loop $while-in60
- (i32.store
- (get_local $7)
- (tee_local $5
- (if (result i32)
- (f64.ne
- (get_local $15)
- (get_local $15)
- )
- (i32.const -2147483648)
- (if (result i32)
- (f64.ge
- (get_local $15)
- (f64.const 2147483648)
- )
- (i32.const -2147483648)
- (if (result i32)
- (f64.le
- (get_local $15)
- (f64.const -2147483649)
- )
- (i32.const -2147483648)
- (i32.trunc_s/f64
- (get_local $15)
- )
- )
- )
- )
- )
- )
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (br_if $while-in60
- (f64.ne
- (tee_local $15
- (f64.mul
- (f64.sub
- (get_local $15)
- (f64.convert_u/i32
- (get_local $5)
- )
- )
- (f64.const 1e9)
- )
- )
- (f64.const 0)
- )
- )
- )
- (if
- (i32.gt_s
- (tee_local $9
- (i32.load
- (get_local $21)
- )
- )
- (i32.const 0)
- )
- (block
- (set_local $5
- (get_local $8)
- )
- (loop $while-in62
- (set_local $13
- (select
- (i32.const 29)
- (get_local $9)
- (i32.gt_s
- (get_local $9)
- (i32.const 29)
- )
- )
- )
- (if
- (i32.ge_u
- (tee_local $9
- (i32.add
- (get_local $7)
- (i32.const -4)
- )
- )
- (get_local $5)
- )
- (block $do-once63
- (set_local $11
- (i32.const 0)
- )
- (loop $while-in66
- (i32.store
- (get_local $9)
- (call $___uremdi3
- (block (result i32)
- (set_local $20
- (call $_bitshift64Shl
+ (block $do-once49 (result i32)
+ (if
+ (tee_local $5
+ (f64.ne
+ (tee_local $23
+ (f64.mul
+ (call $_frexp
+ (get_local $15)
+ (get_local $21)
+ )
+ (f64.const 2)
+ )
+ )
+ (f64.const 0)
+ )
+ )
+ (i32.store
+ (get_local $21)
+ (i32.add
(i32.load
- (get_local $9)
+ (get_local $21)
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (tee_local $24
+ (i32.or
+ (get_local $19)
+ (i32.const 32)
+ )
+ )
+ (i32.const 97)
+ )
+ (block
+ (set_local $9
+ (select
+ (i32.add
+ (get_local $30)
+ (i32.const 9)
+ )
+ (get_local $30)
+ (tee_local $13
+ (i32.and
+ (get_local $19)
+ (i32.const 32)
+ )
+ )
+ )
+ )
+ (set_local $15
+ (if (result f64)
+ (i32.or
+ (i32.eqz
+ (tee_local $5
+ (i32.sub
+ (i32.const 12)
+ (get_local $6)
+ )
+ )
+ )
+ (i32.gt_u
+ (get_local $6)
+ (i32.const 11)
+ )
+ )
+ (get_local $23)
+ (block (result f64)
+ (set_local $15
+ (f64.const 8)
+ )
+ (loop $while-in54
+ (set_local $15
+ (f64.mul
+ (get_local $15)
+ (f64.const 16)
+ )
+ )
+ (br_if $while-in54
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (if (result f64)
+ (i32.eq
+ (i32.load8_s
+ (get_local $9)
+ )
+ (i32.const 45)
+ )
+ (f64.neg
+ (f64.add
+ (get_local $15)
+ (f64.sub
+ (f64.neg
+ (get_local $23)
+ )
+ (get_local $15)
+ )
+ )
+ )
+ (f64.sub
+ (f64.add
+ (get_local $23)
+ (get_local $15)
+ )
+ (get_local $15)
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (tee_local $5
+ (call $_fmt_u
+ (tee_local $5
+ (select
+ (i32.sub
+ (i32.const 0)
+ (tee_local $7
+ (i32.load
+ (get_local $21)
+ )
+ )
+ )
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $26)
+ )
+ )
+ (get_local $26)
+ )
+ (block
+ (i32.store8
+ (get_local $42)
+ (i32.const 48)
+ )
+ (set_local $5
+ (get_local $42)
+ )
+ )
+ )
+ (set_local $11
+ (i32.or
+ (get_local $27)
+ (i32.const 2)
+ )
+ )
+ (i32.store8
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $7)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ )
+ (i32.store8
+ (tee_local $8
+ (i32.add
+ (get_local $5)
+ (i32.const -2)
+ )
+ )
+ (i32.add
+ (get_local $19)
+ (i32.const 15)
+ )
+ )
+ (set_local $19
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (set_local $18
+ (i32.eqz
+ (i32.and
+ (get_local $12)
+ (i32.const 8)
+ )
+ )
+ )
+ (set_local $5
+ (get_local $22)
+ )
+ (loop $while-in56
+ (i32.store8
+ (get_local $5)
+ (i32.or
+ (i32.load8_u
+ (i32.add
+ (tee_local $7
+ (if (result i32)
+ (f64.ne
+ (get_local $15)
+ (get_local $15)
+ )
+ (i32.const -2147483648)
+ (if (result i32)
+ (f64.ge
+ (get_local $15)
+ (f64.const 2147483648)
+ )
+ (i32.const -2147483648)
+ (if (result i32)
+ (f64.le
+ (get_local $15)
+ (f64.const -2147483649)
+ )
+ (i32.const -2147483648)
+ (i32.trunc_s/f64
+ (get_local $15)
+ )
+ )
+ )
+ )
+ )
+ (i32.const 4075)
+ )
+ )
+ (get_local $13)
+ )
+ )
+ (set_local $15
+ (f64.mul
+ (f64.sub
+ (get_local $15)
+ (f64.convert_s/i32
+ (get_local $7)
+ )
+ )
+ (f64.const 16)
+ )
+ )
+ (set_local $5
+ (if (result i32)
+ (i32.eq
+ (i32.sub
+ (tee_local $7
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (get_local $36)
+ )
+ (i32.const 1)
+ )
+ (if (result i32)
+ (i32.and
+ (get_local $18)
+ (i32.and
+ (get_local $19)
+ (f64.eq
+ (get_local $15)
+ (f64.const 0)
+ )
+ )
+ )
+ (get_local $7)
+ (block (result i32)
+ (i32.store8
+ (get_local $7)
+ (i32.const 46)
+ )
+ (i32.add
+ (get_local $5)
+ (i32.const 2)
+ )
+ )
+ )
+ (get_local $7)
+ )
+ )
+ (br_if $while-in56
+ (f64.ne
+ (get_local $15)
+ (f64.const 0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (tee_local $7
+ (i32.add
+ (tee_local $6
+ (select
+ (i32.sub
+ (i32.add
+ (get_local $6)
+ (get_local $47)
+ )
+ (get_local $8)
+ )
+ (i32.add
+ (i32.sub
+ (get_local $45)
+ (get_local $8)
+ )
+ (get_local $5)
+ )
+ (i32.and
+ (i32.ne
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.lt_s
+ (i32.add
+ (get_local $5)
+ (get_local $46)
+ )
+ (get_local $6)
+ )
+ )
+ )
+ )
+ (get_local $11)
+ )
+ )
+ (get_local $12)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $9)
+ (get_local $11)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $16)
+ (get_local $7)
+ (i32.xor
+ (get_local $12)
+ (i32.const 65536)
+ )
+ )
+ (set_local $5
+ (i32.sub
+ (get_local $5)
+ (get_local $36)
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $22)
+ (get_local $5)
+ (get_local $0)
+ )
)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.sub
+ (get_local $6)
+ (i32.add
+ (get_local $5)
+ (tee_local $5
+ (i32.sub
+ (get_local $26)
+ (get_local $8)
+ )
+ )
+ )
+ )
+ (i32.const 0)
(i32.const 0)
- (get_local $13)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $8)
+ (get_local $5)
+ (get_local $0)
+ )
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (get_local $7)
+ (i32.xor
+ (get_local $12)
+ (i32.const 8192)
+ )
+ )
+ (br $do-once49
+ (select
+ (get_local $16)
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (get_local $16)
+ )
+ )
)
)
- (set_global $tempRet0
- (i32.add
- (get_global $tempRet0)
- (i32.lt_u
- (tee_local $11
+ )
+ (set_local $15
+ (if (result f64)
+ (get_local $5)
+ (block (result f64)
+ (i32.store
+ (get_local $21)
+ (tee_local $5
(i32.add
- (get_local $20)
- (get_local $11)
+ (i32.load
+ (get_local $21)
+ )
+ (i32.const -28)
)
)
- (get_local $20)
+ )
+ (f64.mul
+ (get_local $23)
+ (f64.const 268435456)
)
)
+ (block (result f64)
+ (set_local $5
+ (i32.load
+ (get_local $21)
+ )
+ )
+ (get_local $23)
+ )
)
- (get_local $11)
- )
- (tee_local $18
- (get_global $tempRet0)
)
- (i32.const 1000000000)
- (i32.const 0)
- )
- )
- (set_local $11
- (call $___udivdi3
- (get_local $11)
- (get_local $18)
- (i32.const 1000000000)
- (i32.const 0)
- )
- )
- (br_if $while-in66
- (i32.ge_u
- (tee_local $9
- (i32.add
- (get_local $9)
- (i32.const -4)
+ (set_local $7
+ (tee_local $8
+ (select
+ (get_local $48)
+ (get_local $49)
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
)
)
- (get_local $5)
- )
- )
- )
- (br_if $do-once63
- (i32.eqz
- (get_local $11)
- )
- )
- (i32.store
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -4)
- )
- )
- (get_local $11)
- )
- )
- )
- (loop $while-in68
- (if
- (i32.gt_u
- (get_local $7)
- (get_local $5)
- )
- (if
- (i32.eqz
- (i32.load
- (tee_local $9
- (i32.add
+ (loop $while-in60
+ (i32.store
(get_local $7)
- (i32.const -4)
+ (tee_local $5
+ (if (result i32)
+ (f64.ne
+ (get_local $15)
+ (get_local $15)
+ )
+ (i32.const -2147483648)
+ (if (result i32)
+ (f64.ge
+ (get_local $15)
+ (f64.const 2147483648)
+ )
+ (i32.const -2147483648)
+ (if (result i32)
+ (f64.le
+ (get_local $15)
+ (f64.const -2147483649)
+ )
+ (i32.const -2147483648)
+ (i32.trunc_s/f64
+ (get_local $15)
+ )
+ )
+ )
+ )
+ )
)
- )
- )
- )
- (block
- (set_local $7
- (get_local $9)
- )
- (br $while-in68)
- )
- )
- )
- )
- (i32.store
- (get_local $21)
- (tee_local $9
- (i32.sub
- (i32.load
- (get_local $21)
- )
- (get_local $13)
- )
- )
- )
- (br_if $while-in62
- (i32.gt_s
- (get_local $9)
- (i32.const 0)
- )
- )
- )
- )
- (set_local $5
- (get_local $8)
- )
- )
- (set_local $18
- (select
- (i32.const 6)
- (get_local $6)
- (i32.lt_s
- (get_local $6)
- (i32.const 0)
- )
- )
- )
- (if
- (i32.lt_s
- (get_local $9)
- (i32.const 0)
- )
- (block
- (set_local $20
- (i32.add
- (i32.div_s
- (tee_local $6
- (i32.add
- (get_local $18)
- (i32.const 25)
- )
- )
- (i32.const 9)
- )
- (i32.const 1)
- )
- )
- (set_local $31
- (i32.eq
- (get_local $24)
- (i32.const 102)
- )
- )
- (set_local $6
- (get_local $5)
- )
- (set_local $5
- (get_local $7)
- )
- (loop $while-in70
- (set_local $13
- (select
- (i32.const 9)
- (tee_local $7
- (i32.sub
- (i32.const 0)
- (get_local $9)
- )
- )
- (i32.gt_s
- (get_local $7)
- (i32.const 9)
- )
- )
- )
- (if
- (i32.lt_u
- (get_local $6)
- (get_local $5)
- )
- (block $do-once71
- (set_local $11
- (i32.add
- (i32.shl
- (i32.const 1)
- (get_local $13)
- )
- (i32.const -1)
- )
- )
- (set_local $37
- (i32.shr_u
- (i32.const 1000000000)
- (get_local $13)
- )
- )
- (set_local $9
- (i32.const 0)
- )
- (set_local $7
- (get_local $6)
- )
- (loop $while-in74
- (i32.store
- (get_local $7)
- (i32.add
- (i32.shr_u
- (tee_local $32
- (i32.load
+ (set_local $7
+ (i32.add
(get_local $7)
+ (i32.const 4)
)
)
- (get_local $13)
- )
- (get_local $9)
- )
- )
- (set_local $9
- (i32.mul
- (i32.and
- (get_local $32)
- (get_local $11)
- )
- (get_local $37)
- )
- )
- (br_if $while-in74
- (i32.lt_u
- (tee_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
+ (br_if $while-in60
+ (f64.ne
+ (tee_local $15
+ (f64.mul
+ (f64.sub
+ (get_local $15)
+ (f64.convert_u/i32
+ (get_local $5)
+ )
+ )
+ (f64.const 1e9)
+ )
+ )
+ (f64.const 0)
+ )
)
)
- (get_local $5)
- )
- )
- )
- (set_local $7
- (select
- (get_local $6)
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- (i32.load
- (get_local $6)
- )
- )
- )
- (br_if $do-once71
- (i32.eqz
- (get_local $9)
- )
- )
- (i32.store
- (get_local $5)
- (get_local $9)
- )
- (set_local $5
- (i32.add
- (get_local $5)
- (i32.const 4)
- )
- )
- )
- (set_local $7
- (select
- (get_local $6)
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- (i32.load
- (get_local $6)
- )
- )
- )
- )
- (set_local $11
- (select
- (i32.add
- (tee_local $6
- (select
- (get_local $8)
- (get_local $7)
- (get_local $31)
- )
- )
- (i32.shl
- (get_local $20)
- (i32.const 2)
- )
- )
- (get_local $5)
- (i32.gt_s
- (i32.shr_s
- (i32.sub
- (get_local $5)
- (get_local $6)
- )
- (i32.const 2)
- )
- (get_local $20)
- )
- )
- )
- (i32.store
- (get_local $21)
- (tee_local $9
- (i32.add
- (i32.load
- (get_local $21)
- )
- (get_local $13)
- )
- )
- )
- (set_local $5
- (if (result i32)
- (i32.lt_s
- (get_local $9)
- (i32.const 0)
- )
- (block
- (set_local $6
- (get_local $7)
- )
- (set_local $5
- (get_local $11)
- )
- (br $while-in70)
- )
- (block (result i32)
- (set_local $9
- (get_local $11)
- )
- (get_local $7)
- )
- )
- )
- )
- )
- (set_local $9
- (get_local $7)
- )
- )
- (set_local $20
- (get_local $8)
- )
- (if
- (i32.lt_u
- (get_local $5)
- (get_local $9)
- )
- (block $do-once75
- (set_local $7
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $20)
- (get_local $5)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (br_if $do-once75
- (i32.lt_u
- (tee_local $11
- (i32.load
- (get_local $5)
- )
- )
- (i32.const 10)
- )
- )
- (set_local $6
- (i32.const 10)
- )
- (loop $while-in78
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 1)
- )
- )
- (br_if $while-in78
- (i32.ge_u
- (get_local $11)
- (tee_local $6
- (i32.mul
- (get_local $6)
- (i32.const 10)
- )
- )
- )
- )
- )
- )
- (set_local $7
- (i32.const 0)
- )
- )
- (set_local $5
- (if (result i32)
- (i32.lt_s
- (tee_local $6
- (i32.add
- (i32.sub
- (get_local $18)
- (select
- (get_local $7)
- (i32.const 0)
- (i32.ne
- (get_local $24)
- (i32.const 102)
- )
- )
- )
- (i32.shr_s
- (i32.shl
- (i32.and
- (tee_local $31
- (i32.ne
- (get_local $18)
+ (if
+ (i32.gt_s
+ (tee_local $9
+ (i32.load
+ (get_local $21)
+ )
+ )
(i32.const 0)
)
- )
- (tee_local $37
- (i32.eq
- (get_local $24)
- (i32.const 103)
- )
- )
- )
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- )
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $9)
- (get_local $20)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- (i32.const -9)
- )
- )
- (block (result i32)
- (set_local $13
- (i32.div_s
- (tee_local $11
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const 9216)
- )
- )
- )
- (i32.const 9)
- )
- )
- (if
- (i32.lt_s
- (tee_local $6
- (i32.add
- (i32.rem_s
- (get_local $6)
- (i32.const 9)
- )
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- (block
- (set_local $11
- (i32.const 10)
- )
- (loop $while-in80
- (set_local $11
- (i32.mul
- (get_local $11)
- (i32.const 10)
- )
- )
- (br_if $while-in80
- (i32.ne
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const 1)
- )
- )
- (i32.const 9)
- )
- )
- )
- )
- (set_local $11
- (i32.const 10)
- )
- )
- (set_local $13
- (tee_local $24
- (i32.load
- (tee_local $6
- (i32.add
- (i32.add
- (get_local $8)
- (i32.shl
- (get_local $13)
- (i32.const 2)
- )
- )
- (i32.const -4092)
- )
- )
- )
- )
- )
- (set_local $13
- (if (result i32)
- (get_local $11)
- (i32.rem_u
- (get_local $13)
- (get_local $11)
- )
- (i32.const 0)
- )
- )
- (if
- (i32.eqz
- (i32.and
- (tee_local $32
- (i32.eq
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- (get_local $9)
- )
- )
- (i32.eqz
- (get_local $13)
- )
- )
- )
- (block $do-once81
- (set_local $50
- (if (result i32)
- (get_local $11)
- (i32.div_u
- (get_local $24)
- (get_local $11)
- )
- (i32.const 0)
- )
- )
- (set_local $15
- (if (result f64)
- (i32.lt_u
- (get_local $13)
- (tee_local $38
- (i32.div_s
- (get_local $11)
- (i32.const 2)
- )
- )
- )
- (f64.const 0.5)
- (select
- (f64.const 1)
- (f64.const 1.5)
- (i32.and
- (get_local $32)
- (i32.eq
- (get_local $13)
- (get_local $38)
- )
- )
- )
- )
- )
- (set_local $23
- (select
- (f64.const 9007199254740994)
- (f64.const 9007199254740992)
- (i32.and
- (get_local $50)
- (i32.const 1)
- )
- )
- )
- (if
- (get_local $27)
- (if
- (i32.eq
- (i32.load8_s
- (get_local $30)
- )
- (i32.const 45)
- )
- (block
- (set_local $23
- (f64.neg
- (get_local $23)
- )
- )
- (set_local $15
- (f64.neg
- (get_local $15)
- )
- )
- )
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $13
- (i32.sub
- (get_local $24)
- (get_local $13)
- )
- )
- )
- (br_if $do-once81
- (f64.eq
- (f64.add
- (get_local $23)
- (get_local $15)
- )
- (get_local $23)
- )
- )
- (i32.store
- (get_local $6)
- (tee_local $7
- (i32.add
- (get_local $13)
- (get_local $11)
- )
- )
- )
- (if
- (i32.gt_u
- (get_local $7)
- (i32.const 999999999)
- )
- (loop $while-in86
- (i32.store
- (get_local $6)
- (i32.const 0)
- )
- (if
- (i32.lt_u
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -4)
+ (block
+ (set_local $5
+ (get_local $8)
)
- )
- (get_local $5)
- )
- (i32.store
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -4)
+ (loop $while-in62
+ (set_local $13
+ (select
+ (i32.const 29)
+ (get_local $9)
+ (i32.gt_s
+ (get_local $9)
+ (i32.const 29)
+ )
+ )
+ )
+ (if
+ (i32.ge_u
+ (tee_local $9
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (block $do-once63
+ (set_local $11
+ (i32.const 0)
+ )
+ (loop $while-in66
+ (i32.store
+ (get_local $9)
+ (call $___uremdi3
+ (block (result i32)
+ (set_global $tempRet0
+ (i32.add
+ (i32.lt_u
+ (tee_local $11
+ (i32.add
+ (get_local $11)
+ (tee_local $20
+ (call $_bitshift64Shl
+ (i32.load
+ (get_local $9)
+ )
+ (i32.const 0)
+ (get_local $13)
+ )
+ )
+ )
+ )
+ (get_local $20)
+ )
+ (get_global $tempRet0)
+ )
+ )
+ (get_local $11)
+ )
+ (tee_local $18
+ (get_global $tempRet0)
+ )
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (set_local $11
+ (call $___udivdi3
+ (get_local $11)
+ (get_local $18)
+ (i32.const 1000000000)
+ (i32.const 0)
+ )
+ )
+ (br_if $while-in66
+ (i32.ge_u
+ (tee_local $9
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ )
+ )
+ (br_if $do-once63
+ (i32.eqz
+ (get_local $11)
+ )
+ )
+ (i32.store
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ (get_local $11)
+ )
+ )
+ )
+ (loop $while-in68
+ (if
+ (i32.gt_u
+ (get_local $7)
+ (get_local $5)
+ )
+ (if
+ (i32.eqz
+ (i32.load
+ (tee_local $9
+ (i32.add
+ (get_local $7)
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $9)
+ )
+ (br $while-in68)
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $21)
+ (tee_local $9
+ (i32.sub
+ (i32.load
+ (get_local $21)
+ )
+ (get_local $13)
+ )
+ )
+ )
+ (br_if $while-in62
+ (i32.gt_s
+ (get_local $9)
+ (i32.const 0)
+ )
+ )
)
)
- (i32.const 0)
+ (set_local $5
+ (get_local $8)
+ )
)
- )
- (i32.store
- (get_local $6)
- (tee_local $7
- (i32.add
- (i32.load
+ (set_local $18
+ (select
+ (i32.const 6)
+ (get_local $6)
+ (i32.lt_s
(get_local $6)
+ (i32.const 0)
)
- (i32.const 1)
)
)
- )
- (br_if $while-in86
- (i32.gt_u
- (get_local $7)
- (i32.const 999999999)
- )
- )
- )
- )
- (set_local $7
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $20)
- (get_local $5)
- )
- (i32.const 2)
- )
- (i32.const 9)
- )
- )
- (br_if $do-once81
- (i32.lt_u
- (tee_local $13
- (i32.load
- (get_local $5)
- )
- )
- (i32.const 10)
- )
- )
- (set_local $11
- (i32.const 10)
- )
- (loop $while-in88
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 1)
- )
- )
- (br_if $while-in88
- (i32.ge_u
- (get_local $13)
- (tee_local $11
- (i32.mul
- (get_local $11)
- (i32.const 10)
+ (if
+ (i32.lt_s
+ (get_local $9)
+ (i32.const 0)
)
- )
- )
- )
- )
- )
- )
- (set_local $11
- (get_local $5)
- )
- (set_local $13
- (get_local $7)
- )
- (select
- (tee_local $5
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- )
- (get_local $9)
- (i32.gt_u
- (get_local $9)
- (get_local $5)
- )
- )
- )
- (block (result i32)
- (set_local $11
- (get_local $5)
- )
- (set_local $13
- (get_local $7)
- )
- (get_local $9)
- )
- )
- )
- (set_local $32
- (i32.sub
- (i32.const 0)
- (get_local $13)
- )
- )
- (set_local $9
- (loop $while-in90 (result i32)
- (block $while-out89 (result i32)
- (if
- (i32.le_u
- (get_local $5)
- (get_local $11)
- )
- (block
- (set_local $24
- (i32.const 0)
- )
- (br $while-out89
- (get_local $5)
- )
- )
- )
- (if (result i32)
- (i32.load
- (tee_local $7
- (i32.add
- (get_local $5)
- (i32.const -4)
- )
- )
- )
- (block (result i32)
- (set_local $24
- (i32.const 1)
- )
- (get_local $5)
- )
- (block
- (set_local $5
- (get_local $7)
- )
- (br $while-in90)
- )
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $13
- (i32.add
- (i32.add
- (i32.add
- (i32.add
- (get_local $27)
- (i32.const 1)
- )
- (tee_local $5
- (if (result i32)
- (get_local $37)
- (block $do-once91 (result i32)
- (set_local $7
- (if (result i32)
- (i32.and
- (i32.gt_s
- (tee_local $5
- (i32.add
- (i32.xor
- (get_local $31)
- (i32.const 1)
+ (block
+ (set_local $20
+ (i32.add
+ (i32.div_s
+ (tee_local $6
+ (i32.add
+ (get_local $18)
+ (i32.const 25)
)
- (get_local $18)
)
+ (i32.const 9)
)
- (get_local $13)
+ (i32.const 1)
)
- (i32.gt_s
- (get_local $13)
- (i32.const -5)
+ )
+ (set_local $31
+ (i32.eq
+ (get_local $24)
+ (i32.const 102)
)
)
- (block (result i32)
- (set_local $18
- (i32.sub
- (i32.add
- (get_local $5)
- (i32.const -1)
+ (set_local $6
+ (get_local $5)
+ )
+ (set_local $5
+ (get_local $7)
+ )
+ (loop $while-in70
+ (set_local $13
+ (select
+ (i32.const 9)
+ (tee_local $7
+ (i32.sub
+ (i32.const 0)
+ (get_local $9)
+ )
+ )
+ (i32.gt_s
+ (get_local $7)
+ (i32.const 9)
)
- (get_local $13)
)
)
- (i32.add
- (get_local $19)
- (i32.const -1)
+ (if
+ (i32.lt_u
+ (get_local $6)
+ (get_local $5)
+ )
+ (block $do-once71
+ (set_local $11
+ (i32.add
+ (i32.shl
+ (i32.const 1)
+ (get_local $13)
+ )
+ (i32.const -1)
+ )
+ )
+ (set_local $37
+ (i32.shr_u
+ (i32.const 1000000000)
+ (get_local $13)
+ )
+ )
+ (set_local $9
+ (i32.const 0)
+ )
+ (set_local $7
+ (get_local $6)
+ )
+ (loop $while-in74
+ (i32.store
+ (get_local $7)
+ (i32.add
+ (i32.shr_u
+ (tee_local $32
+ (i32.load
+ (get_local $7)
+ )
+ )
+ (get_local $13)
+ )
+ (get_local $9)
+ )
+ )
+ (set_local $9
+ (i32.mul
+ (i32.and
+ (get_local $11)
+ (get_local $32)
+ )
+ (get_local $37)
+ )
+ )
+ (br_if $while-in74
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $5)
+ )
+ )
+ )
+ (set_local $7
+ (select
+ (get_local $6)
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $6)
+ )
+ )
+ )
+ (br_if $do-once71
+ (i32.eqz
+ (get_local $9)
+ )
+ )
+ (i32.store
+ (get_local $5)
+ (get_local $9)
+ )
+ (set_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 4)
+ )
+ )
+ )
+ (set_local $7
+ (select
+ (get_local $6)
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ (i32.load
+ (get_local $6)
+ )
+ )
+ )
)
- )
- (block (result i32)
- (set_local $18
- (i32.add
+ (set_local $11
+ (select
+ (i32.add
+ (tee_local $6
+ (select
+ (get_local $8)
+ (get_local $7)
+ (get_local $31)
+ )
+ )
+ (i32.shl
+ (get_local $20)
+ (i32.const 2)
+ )
+ )
(get_local $5)
- (i32.const -1)
+ (i32.gt_s
+ (i32.shr_s
+ (i32.sub
+ (get_local $5)
+ (get_local $6)
+ )
+ (i32.const 2)
+ )
+ (get_local $20)
+ )
)
)
- (i32.add
- (get_local $19)
- (i32.const -2)
+ (i32.store
+ (get_local $21)
+ (tee_local $9
+ (i32.add
+ (i32.load
+ (get_local $21)
+ )
+ (get_local $13)
+ )
+ )
+ )
+ (set_local $5
+ (if (result i32)
+ (i32.lt_s
+ (get_local $9)
+ (i32.const 0)
+ )
+ (block
+ (set_local $6
+ (get_local $7)
+ )
+ (set_local $5
+ (get_local $11)
+ )
+ (br $while-in70)
+ )
+ (block (result i32)
+ (set_local $9
+ (get_local $11)
+ )
+ (get_local $7)
+ )
+ )
)
)
)
+ (set_local $9
+ (get_local $7)
+ )
+ )
+ (set_local $20
+ (get_local $8)
)
(if
- (tee_local $5
- (i32.and
- (get_local $12)
- (i32.const 8)
- )
+ (i32.lt_u
+ (get_local $5)
+ (get_local $9)
)
- (block
- (set_local $20
- (get_local $5)
+ (block $do-once75
+ (set_local $7
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $20)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once75
+ (i32.lt_u
+ (tee_local $11
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $6
+ (i32.const 10)
)
- (br $do-once91
- (get_local $18)
+ (loop $while-in78
+ (set_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in78
+ (i32.ge_u
+ (get_local $11)
+ (tee_local $6
+ (i32.mul
+ (get_local $6)
+ (i32.const 10)
+ )
+ )
+ )
+ )
)
)
+ (set_local $7
+ (i32.const 0)
+ )
)
- (if
- (get_local $24)
- (block $do-once93
- (if
- (i32.eqz
- (tee_local $19
- (i32.load
- (i32.add
- (get_local $9)
- (i32.const -4)
+ (set_local $5
+ (if (result i32)
+ (i32.lt_s
+ (tee_local $6
+ (i32.add
+ (i32.sub
+ (get_local $18)
+ (select
+ (get_local $7)
+ (i32.const 0)
+ (i32.ne
+ (get_local $24)
+ (i32.const 102)
+ )
)
)
+ (i32.shr_s
+ (i32.shl
+ (i32.and
+ (tee_local $31
+ (i32.ne
+ (get_local $18)
+ (i32.const 0)
+ )
+ )
+ (tee_local $37
+ (i32.eq
+ (get_local $24)
+ (i32.const 103)
+ )
+ )
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
)
)
- (block
- (set_local $5
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $20)
+ )
+ (i32.const 2)
+ )
(i32.const 9)
)
- (br $do-once93)
+ (i32.const -9)
)
)
- (set_local $5
- (if (result i32)
- (i32.rem_u
- (get_local $19)
- (i32.const 10)
+ (block (result i32)
+ (set_local $13
+ (i32.div_s
+ (tee_local $11
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 9216)
+ )
+ )
+ )
+ (i32.const 9)
)
- (block
- (set_local $5
- (i32.const 0)
+ )
+ (if
+ (i32.lt_s
+ (tee_local $6
+ (i32.add
+ (i32.rem_s
+ (get_local $6)
+ (i32.const 9)
+ )
+ (i32.const 1)
+ )
)
- (br $do-once93)
+ (i32.const 9)
)
- (block (result i32)
- (set_local $6
+ (block
+ (set_local $11
(i32.const 10)
)
- (i32.const 0)
+ (loop $while-in80
+ (set_local $11
+ (i32.mul
+ (get_local $11)
+ (i32.const 10)
+ )
+ )
+ (br_if $while-in80
+ (i32.ne
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 1)
+ )
+ )
+ (i32.const 9)
+ )
+ )
+ )
+ )
+ (set_local $11
+ (i32.const 10)
)
)
- )
- (loop $while-in96
- (set_local $5
- (i32.add
- (get_local $5)
- (i32.const 1)
+ (set_local $13
+ (tee_local $24
+ (i32.load
+ (tee_local $6
+ (i32.add
+ (i32.add
+ (get_local $8)
+ (i32.shl
+ (get_local $13)
+ (i32.const 2)
+ )
+ )
+ (i32.const -4092)
+ )
+ )
+ )
)
)
- (br_if $while-in96
+ (set_local $13
+ (if (result i32)
+ (get_local $11)
+ (i32.rem_u
+ (get_local $13)
+ (get_local $11)
+ )
+ (i32.const 0)
+ )
+ )
+ (if
(i32.eqz
- (if (result i32)
- (tee_local $38
- (tee_local $6
- (i32.mul
+ (i32.and
+ (tee_local $32
+ (i32.eq
+ (i32.add
(get_local $6)
- (i32.const 10)
+ (i32.const 4)
)
+ (get_local $9)
)
)
- (i32.rem_u
- (get_local $19)
- (get_local $38)
+ (i32.eqz
+ (get_local $13)
)
- (i32.const 0)
)
)
+ (block $do-once81
+ (set_local $50
+ (if (result i32)
+ (get_local $11)
+ (i32.div_u
+ (get_local $24)
+ (get_local $11)
+ )
+ (i32.const 0)
+ )
+ )
+ (set_local $15
+ (if (result f64)
+ (i32.lt_u
+ (get_local $13)
+ (tee_local $38
+ (i32.div_s
+ (get_local $11)
+ (i32.const 2)
+ )
+ )
+ )
+ (f64.const 0.5)
+ (select
+ (f64.const 1)
+ (f64.const 1.5)
+ (i32.and
+ (get_local $32)
+ (i32.eq
+ (get_local $13)
+ (get_local $38)
+ )
+ )
+ )
+ )
+ )
+ (set_local $23
+ (select
+ (f64.const 9007199254740994)
+ (f64.const 9007199254740992)
+ (i32.and
+ (get_local $50)
+ (i32.const 1)
+ )
+ )
+ )
+ (if
+ (get_local $27)
+ (if
+ (i32.eq
+ (i32.load8_s
+ (get_local $30)
+ )
+ (i32.const 45)
+ )
+ (block
+ (set_local $23
+ (f64.neg
+ (get_local $23)
+ )
+ )
+ (set_local $15
+ (f64.neg
+ (get_local $15)
+ )
+ )
+ )
+ )
+ )
+ (i32.store
+ (get_local $6)
+ (tee_local $13
+ (i32.sub
+ (get_local $24)
+ (get_local $13)
+ )
+ )
+ )
+ (br_if $do-once81
+ (f64.eq
+ (f64.add
+ (get_local $23)
+ (get_local $15)
+ )
+ (get_local $23)
+ )
+ )
+ (i32.store
+ (get_local $6)
+ (tee_local $7
+ (i32.add
+ (get_local $11)
+ (get_local $13)
+ )
+ )
+ )
+ (if
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 999999999)
+ )
+ (loop $while-in86
+ (i32.store
+ (get_local $6)
+ (i32.const 0)
+ )
+ (if
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -4)
+ )
+ )
+ (get_local $5)
+ )
+ (i32.store
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (i32.store
+ (get_local $6)
+ (tee_local $7
+ (i32.add
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $while-in86
+ (i32.gt_u
+ (get_local $7)
+ (i32.const 999999999)
+ )
+ )
+ )
+ )
+ (set_local $7
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $20)
+ (get_local $5)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ )
+ (br_if $do-once81
+ (i32.lt_u
+ (tee_local $13
+ (i32.load
+ (get_local $5)
+ )
+ )
+ (i32.const 10)
+ )
+ )
+ (set_local $11
+ (i32.const 10)
+ )
+ (loop $while-in88
+ (set_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in88
+ (i32.ge_u
+ (get_local $13)
+ (tee_local $11
+ (i32.mul
+ (get_local $11)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $11
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (select
+ (tee_local $5
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ (i32.gt_u
+ (get_local $9)
+ (get_local $5)
+ )
)
)
+ (block (result i32)
+ (set_local $11
+ (get_local $5)
+ )
+ (set_local $13
+ (get_local $7)
+ )
+ (get_local $9)
+ )
)
- (set_local $5
- (i32.const 9)
+ )
+ (set_local $32
+ (i32.sub
+ (i32.const 0)
+ (get_local $13)
)
)
- (set_local $6
- (i32.add
- (i32.mul
- (i32.shr_s
- (i32.sub
- (get_local $9)
- (get_local $20)
+ (set_local $9
+ (loop $while-in90 (result i32)
+ (block $while-out89 (result i32)
+ (if
+ (i32.le_u
+ (get_local $5)
+ (get_local $11)
+ )
+ (block
+ (set_local $24
+ (i32.const 0)
+ )
+ (br $while-out89
+ (get_local $5)
+ )
+ )
+ )
+ (if (result i32)
+ (i32.load
+ (tee_local $7
+ (i32.add
+ (get_local $5)
+ (i32.const -4)
+ )
+ )
+ )
+ (block (result i32)
+ (set_local $24
+ (i32.const 1)
+ )
+ (get_local $5)
+ )
+ (block
+ (set_local $5
+ (get_local $7)
+ )
+ (br $while-in90)
)
- (i32.const 2)
)
- (i32.const 9)
)
- (i32.const -9)
)
)
- (if (result i32)
- (i32.eq
- (i32.or
- (get_local $7)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (tee_local $13
+ (i32.add
+ (i32.add
+ (i32.add
+ (tee_local $5
+ (if (result i32)
+ (get_local $37)
+ (block $do-once91 (result i32)
+ (set_local $7
+ (if (result i32)
+ (i32.and
+ (i32.gt_s
+ (tee_local $5
+ (i32.add
+ (i32.xor
+ (get_local $31)
+ (i32.const 1)
+ )
+ (get_local $18)
+ )
+ )
+ (get_local $13)
+ )
+ (i32.gt_s
+ (get_local $13)
+ (i32.const -5)
+ )
+ )
+ (block (result i32)
+ (set_local $18
+ (i32.sub
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ (get_local $13)
+ )
+ )
+ (i32.add
+ (get_local $19)
+ (i32.const -1)
+ )
+ )
+ (block (result i32)
+ (set_local $18
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.add
+ (get_local $19)
+ (i32.const -2)
+ )
+ )
+ )
+ )
+ (if
+ (tee_local $5
+ (i32.and
+ (get_local $12)
+ (i32.const 8)
+ )
+ )
+ (block
+ (set_local $20
+ (get_local $5)
+ )
+ (br $do-once91
+ (get_local $18)
+ )
+ )
+ )
+ (if
+ (get_local $24)
+ (block $do-once93
+ (if
+ (i32.eqz
+ (tee_local $19
+ (i32.load
+ (i32.add
+ (get_local $9)
+ (i32.const -4)
+ )
+ )
+ )
+ )
+ (block
+ (set_local $5
+ (i32.const 9)
+ )
+ (br $do-once93)
+ )
+ )
+ (set_local $5
+ (if (result i32)
+ (i32.rem_u
+ (get_local $19)
+ (i32.const 10)
+ )
+ (block
+ (set_local $5
+ (i32.const 0)
+ )
+ (br $do-once93)
+ )
+ (block (result i32)
+ (set_local $6
+ (i32.const 10)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (loop $while-in96
+ (set_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (br_if $while-in96
+ (i32.eqz
+ (if (result i32)
+ (tee_local $38
+ (tee_local $6
+ (i32.mul
+ (get_local $6)
+ (i32.const 10)
+ )
+ )
+ )
+ (i32.rem_u
+ (get_local $19)
+ (get_local $38)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (set_local $5
+ (i32.const 9)
+ )
+ )
+ (set_local $6
+ (i32.add
+ (i32.mul
+ (i32.shr_s
+ (i32.sub
+ (get_local $9)
+ (get_local $20)
+ )
+ (i32.const 2)
+ )
+ (i32.const 9)
+ )
+ (i32.const -9)
+ )
+ )
+ (if (result i32)
+ (i32.eq
+ (i32.or
+ (get_local $7)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ (block (result i32)
+ (set_local $20
+ (i32.const 0)
+ )
+ (select
+ (get_local $18)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (get_local $6)
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $18)
+ (get_local $5)
+ )
+ )
+ )
+ (block (result i32)
+ (set_local $20
+ (i32.const 0)
+ )
+ (select
+ (get_local $18)
+ (tee_local $5
+ (select
+ (i32.const 0)
+ (tee_local $5
+ (i32.sub
+ (i32.add
+ (get_local $6)
+ (get_local $13)
+ )
+ (get_local $5)
+ )
+ )
+ (i32.lt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.lt_s
+ (get_local $18)
+ (get_local $5)
+ )
+ )
+ )
+ )
+ )
+ (block (result i32)
+ (set_local $20
+ (i32.and
+ (get_local $12)
+ (i32.const 8)
+ )
+ )
+ (set_local $7
+ (get_local $19)
+ )
+ (get_local $18)
+ )
+ )
+ )
+ (i32.add
+ (get_local $27)
+ (i32.const 1)
+ )
+ )
+ (i32.ne
+ (tee_local $31
+ (i32.or
+ (get_local $5)
+ (get_local $20)
+ )
+ )
+ (i32.const 0)
+ )
+ )
+ (if (result i32)
+ (tee_local $18
+ (i32.eq
+ (i32.or
+ (get_local $7)
+ (i32.const 32)
+ )
+ (i32.const 102)
+ )
+ )
+ (block (result i32)
+ (set_local $19
+ (i32.const 0)
+ )
+ (select
+ (get_local $13)
+ (i32.const 0)
+ (i32.gt_s
+ (get_local $13)
+ (i32.const 0)
+ )
+ )
+ )
+ (block (result i32)
+ (if
+ (i32.lt_s
+ (i32.sub
+ (get_local $26)
+ (tee_local $6
+ (call $_fmt_u
+ (tee_local $6
+ (select
+ (get_local $32)
+ (get_local $13)
+ (i32.lt_s
+ (get_local $13)
+ (i32.const 0)
+ )
+ )
+ )
+ (i32.shr_s
+ (i32.shl
+ (i32.lt_s
+ (get_local $6)
+ (i32.const 0)
+ )
+ (i32.const 31)
+ )
+ (i32.const 31)
+ )
+ (get_local $26)
+ )
+ )
+ )
+ (i32.const 2)
+ )
+ (loop $while-in98
+ (i32.store8
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in98
+ (i32.lt_s
+ (i32.sub
+ (get_local $26)
+ (get_local $6)
+ )
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (i32.store8
+ (i32.add
+ (get_local $6)
+ (i32.const -1)
+ )
+ (i32.add
+ (i32.and
+ (i32.shr_s
+ (get_local $13)
+ (i32.const 31)
+ )
+ (i32.const 2)
+ )
+ (i32.const 43)
+ )
+ )
+ (i32.store8
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -2)
+ )
+ )
+ (get_local $7)
+ )
+ (i32.sub
+ (get_local $26)
+ (tee_local $19
+ (get_local $6)
+ )
+ )
+ )
+ )
+ )
+ )
+ (get_local $12)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
(i32.const 32)
)
- (i32.const 102)
)
- (block (result i32)
- (set_local $20
- (i32.const 0)
+ (drop
+ (call $___fwritex
+ (get_local $30)
+ (get_local $27)
+ (get_local $0)
)
- (select
- (get_local $18)
- (tee_local $5
+ )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (get_local $16)
+ (get_local $13)
+ (i32.xor
+ (get_local $12)
+ (i32.const 65536)
+ )
+ )
+ (if
+ (get_local $18)
+ (block
+ (set_local $6
+ (tee_local $11
(select
+ (get_local $8)
+ (get_local $11)
+ (i32.gt_u
+ (get_local $11)
+ (get_local $8)
+ )
+ )
+ )
+ )
+ (loop $while-in102
+ (set_local $7
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
(i32.const 0)
- (tee_local $5
+ (get_local $29)
+ )
+ )
+ (block $do-once103
+ (if
+ (i32.eq
+ (get_local $6)
+ (get_local $11)
+ )
+ (block
+ (br_if $do-once103
+ (i32.ne
+ (get_local $7)
+ (get_local $29)
+ )
+ )
+ (i32.store8
+ (get_local $33)
+ (i32.const 48)
+ )
+ (set_local $7
+ (get_local $33)
+ )
+ )
+ (block
+ (br_if $do-once103
+ (i32.le_u
+ (get_local $7)
+ (get_local $22)
+ )
+ )
+ (loop $while-in106
+ (i32.store8
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in106
+ (i32.gt_u
+ (get_local $7)
+ (get_local $22)
+ )
+ )
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $7)
(i32.sub
+ (get_local $43)
+ (get_local $7)
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (if
+ (i32.le_u
+ (tee_local $7
+ (i32.add
(get_local $6)
- (get_local $5)
+ (i32.const 4)
)
)
- (i32.lt_s
+ (get_local $8)
+ )
+ (block
+ (set_local $6
+ (get_local $7)
+ )
+ (br $while-in102)
+ )
+ )
+ )
+ (if
+ (get_local $31)
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ )
+ (if
+ (i32.and
+ (i32.lt_u
+ (get_local $7)
+ (get_local $9)
+ )
+ (i32.gt_s
+ (get_local $5)
+ (i32.const 0)
+ )
+ )
+ (loop $while-in110
+ (if
+ (i32.gt_u
+ (tee_local $6
+ (call $_fmt_u
+ (i32.load
+ (get_local $7)
+ )
+ (i32.const 0)
+ (get_local $29)
+ )
+ )
+ (get_local $22)
+ )
+ (loop $while-in112
+ (i32.store8
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in112
+ (i32.gt_u
+ (get_local $6)
+ (get_local $22)
+ )
+ )
+ )
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (select
+ (i32.const 9)
+ (get_local $5)
+ (i32.gt_s
+ (get_local $5)
+ (i32.const 9)
+ )
+ )
+ (get_local $0)
+ )
+ )
+ )
+ (set_local $6
+ (i32.add
(get_local $5)
- (i32.const 0)
+ (i32.const -9)
+ )
+ )
+ (set_local $5
+ (if (result i32)
+ (i32.and
+ (i32.lt_u
+ (tee_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ (i32.gt_s
+ (get_local $5)
+ (i32.const 9)
+ )
+ )
+ (block
+ (set_local $5
+ (get_local $6)
+ )
+ (br $while-in110)
+ )
+ (get_local $6)
)
)
)
- (i32.lt_s
- (get_local $18)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.add
(get_local $5)
+ (i32.const 9)
)
+ (i32.const 9)
+ (i32.const 0)
)
)
- (block (result i32)
- (set_local $20
- (i32.const 0)
+ (block $do-once99
+ (set_local $9
+ (select
+ (get_local $9)
+ (i32.add
+ (get_local $11)
+ (i32.const 4)
+ )
+ (get_local $24)
+ )
)
- (select
- (get_local $18)
- (tee_local $5
- (select
- (i32.const 0)
- (tee_local $5
- (i32.sub
- (i32.add
+ (if
+ (i32.gt_s
+ (get_local $5)
+ (i32.const -1)
+ )
+ (block
+ (set_local $18
+ (i32.eqz
+ (get_local $20)
+ )
+ )
+ (set_local $6
+ (get_local $11)
+ )
+ (set_local $7
+ (get_local $5)
+ )
+ (loop $while-in114
+ (if
+ (i32.eq
+ (tee_local $5
+ (call $_fmt_u
+ (i32.load
+ (get_local $6)
+ )
+ (i32.const 0)
+ (get_local $29)
+ )
+ )
+ (get_local $29)
+ )
+ (block
+ (i32.store8
+ (get_local $33)
+ (i32.const 48)
+ )
+ (set_local $5
+ (get_local $33)
+ )
+ )
+ )
+ (block $do-once115
+ (if
+ (i32.eq
(get_local $6)
- (get_local $13)
+ (get_local $11)
)
+ (block
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (set_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const 1)
+ )
+ )
+ (br_if $do-once115
+ (i32.and
+ (get_local $18)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 1)
+ )
+ )
+ )
+ (br_if $do-once115
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (i32.const 4143)
+ (i32.const 1)
+ (get_local $0)
+ )
+ )
+ )
+ (block
+ (br_if $do-once115
+ (i32.le_u
+ (get_local $5)
+ (get_local $22)
+ )
+ )
+ (loop $while-in118
+ (i32.store8
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (i32.const -1)
+ )
+ )
+ (i32.const 48)
+ )
+ (br_if $while-in118
+ (i32.gt_u
+ (get_local $5)
+ (get_local $22)
+ )
+ )
+ )
+ )
+ )
+ )
+ (set_local $8
+ (i32.sub
+ (get_local $43)
(get_local $5)
)
)
- (i32.lt_s
- (get_local $5)
- (i32.const 0)
+ (if
+ (i32.eqz
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $5)
+ (select
+ (get_local $8)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $7)
+ (get_local $8)
+ )
+ )
+ (get_local $0)
+ )
+ )
)
+ (br_if $while-in114
+ (i32.and
+ (i32.lt_u
+ (tee_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (get_local $9)
+ )
+ (i32.gt_s
+ (tee_local $7
+ (i32.sub
+ (get_local $7)
+ (get_local $8)
+ )
+ )
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ (set_local $5
+ (get_local $7)
)
)
- (i32.lt_s
- (get_local $18)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 48)
+ (i32.add
(get_local $5)
+ (i32.const 18)
+ )
+ (i32.const 18)
+ (i32.const 0)
+ )
+ (br_if $do-once99
+ (i32.and
+ (i32.load
+ (get_local $0)
+ )
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $19)
+ (i32.sub
+ (get_local $26)
+ (get_local $19)
+ )
+ (get_local $0)
)
)
)
)
- )
- (block (result i32)
- (set_local $20
- (i32.and
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (get_local $13)
+ (i32.xor
(get_local $12)
- (i32.const 8)
+ (i32.const 8192)
)
)
- (set_local $7
- (get_local $19)
+ (select
+ (get_local $16)
+ (get_local $13)
+ (i32.lt_s
+ (get_local $13)
+ (get_local $16)
+ )
)
- (get_local $18)
)
- )
- )
- )
- (i32.ne
- (tee_local $31
- (i32.or
- (get_local $5)
- (get_local $20)
- )
- )
- (i32.const 0)
- )
- )
- (if (result i32)
- (tee_local $18
- (i32.eq
- (i32.or
- (get_local $7)
- (i32.const 32)
- )
- (i32.const 102)
- )
- )
- (block (result i32)
- (set_local $19
- (i32.const 0)
- )
- (select
- (get_local $13)
- (i32.const 0)
- (i32.gt_s
- (get_local $13)
- (i32.const 0)
- )
- )
- )
- (block (result i32)
- (if
- (i32.lt_s
- (i32.sub
- (get_local $26)
- (tee_local $6
- (call $_fmt_u
- (tee_local $6
- (select
- (get_local $32)
- (get_local $13)
- (i32.lt_s
- (get_local $13)
+ (block (result i32)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (tee_local $7
+ (i32.add
+ (tee_local $9
+ (select
(i32.const 0)
+ (get_local $27)
+ (tee_local $6
+ (f64.ne
+ (get_local $15)
+ (get_local $15)
+ )
+ )
)
)
+ (i32.const 3)
)
- (i32.shr_s
- (i32.shl
- (i32.lt_s
- (get_local $6)
- (i32.const 0)
+ )
+ (get_local $8)
+ )
+ (if
+ (i32.eqz
+ (i32.and
+ (tee_local $5
+ (i32.load
+ (get_local $0)
)
- (i32.const 31)
)
- (i32.const 31)
+ (i32.const 32)
+ )
+ )
+ (block
+ (drop
+ (call $___fwritex
+ (get_local $30)
+ (get_local $9)
+ (get_local $0)
+ )
+ )
+ (set_local $5
+ (i32.load
+ (get_local $0)
+ )
)
- (get_local $26)
)
)
- )
- (i32.const 2)
- )
- (loop $while-in98
- (i32.store8
- (tee_local $6
- (i32.add
+ (set_local $6
+ (select
+ (select
+ (i32.const 4135)
+ (i32.const 4139)
+ (tee_local $8
+ (i32.ne
+ (i32.and
+ (get_local $19)
+ (i32.const 32)
+ )
+ (i32.const 0)
+ )
+ )
+ )
+ (select
+ (i32.const 4127)
+ (i32.const 4131)
+ (get_local $8)
+ )
(get_local $6)
- (i32.const -1)
)
)
- (i32.const 48)
- )
- (br_if $while-in98
- (i32.lt_s
- (i32.sub
- (get_local $26)
- (get_local $6)
+ (if
+ (i32.eqz
+ (i32.and
+ (get_local $5)
+ (i32.const 32)
+ )
+ )
+ (drop
+ (call $___fwritex
+ (get_local $6)
+ (i32.const 3)
+ (get_local $0)
+ )
)
- (i32.const 2)
)
- )
- )
- )
- (i32.store8
- (i32.add
- (get_local $6)
- (i32.const -1)
- )
- (i32.add
- (i32.and
- (i32.shr_s
- (get_local $13)
- (i32.const 31)
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (get_local $7)
+ (i32.xor
+ (get_local $12)
+ (i32.const 8192)
+ )
+ )
+ (select
+ (get_local $16)
+ (get_local $7)
+ (i32.lt_s
+ (get_local $7)
+ (get_local $16)
+ )
)
- (i32.const 2)
)
- (i32.const 43)
)
)
- (i32.store8
- (tee_local $6
- (i32.add
- (get_local $6)
- (i32.const -2)
- )
- )
- (get_local $7)
+ (set_local $5
+ (get_local $10)
)
- (i32.sub
- (get_local $26)
- (tee_local $19
- (get_local $6)
- )
+ (set_local $10
+ (get_local $7)
)
+ (br $label$continue$L1)
)
- )
- )
- )
- (get_local $12)
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $30)
- (get_local $27)
- (get_local $0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (get_local $16)
- (get_local $13)
- (i32.xor
- (get_local $12)
- (i32.const 65536)
- )
- )
- (if
- (get_local $18)
- (block
- (set_local $6
- (tee_local $11
- (select
- (get_local $8)
- (get_local $11)
- (i32.gt_u
- (get_local $11)
- (get_local $8)
- )
+ (set_local $7
+ (get_local $5)
)
- )
- )
- (loop $while-in102
- (set_local $7
- (call $_fmt_u
- (i32.load
- (get_local $6)
- )
+ (set_local $11
+ (get_local $6)
+ )
+ (set_local $8
(i32.const 0)
- (get_local $29)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $__rjto$8
+ (get_local $25)
)
)
- (block $do-once103
- (if
- (i32.eq
- (get_local $6)
- (get_local $11)
- )
- (block
- (br_if $do-once103
- (i32.ne
- (get_local $7)
- (get_local $29)
- )
- )
- (i32.store8
- (get_local $33)
- (i32.const 48)
- )
- (set_local $7
- (get_local $33)
- )
- )
- (block
- (br_if $do-once103
- (i32.le_u
- (get_local $7)
- (get_local $22)
- )
- )
- (loop $while-in106
- (i32.store8
- (tee_local $7
- (i32.add
- (get_local $7)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-in106
- (i32.gt_u
- (get_local $7)
- (get_local $22)
- )
- )
- )
- )
+ (set_local $9
+ (i32.and
+ (get_local $19)
+ (i32.const 32)
)
)
(if
- (i32.eqz
- (i32.and
+ (i32.or
+ (tee_local $8
(i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $7)
- (i32.sub
- (get_local $43)
- (get_local $7)
+ (get_local $14)
)
- (get_local $0)
)
- )
- )
- (if
- (i32.le_u
- (tee_local $7
- (i32.add
- (get_local $6)
- (i32.const 4)
+ (tee_local $12
+ (i32.load offset=4
+ (get_local $14)
)
)
- (get_local $8)
)
(block
- (set_local $6
- (get_local $7)
- )
- (br $while-in102)
- )
- )
- )
- (if
- (get_local $31)
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
+ (set_local $5
+ (get_local $8)
)
- )
- )
- )
- (if
- (i32.and
- (i32.gt_s
- (get_local $5)
- (i32.const 0)
- )
- (i32.lt_u
- (get_local $7)
- (get_local $9)
- )
- )
- (loop $while-in110
- (if
- (i32.gt_u
- (tee_local $6
- (call $_fmt_u
- (i32.load
- (get_local $7)
- )
- (i32.const 0)
- (get_local $29)
- )
- )
- (get_local $22)
+ (set_local $8
+ (get_local $25)
)
- (loop $while-in112
+ (loop $while-in123
(i32.store8
- (tee_local $6
+ (tee_local $8
(i32.add
- (get_local $6)
+ (get_local $8)
(i32.const -1)
)
)
- (i32.const 48)
- )
- (br_if $while-in112
- (i32.gt_u
- (get_local $6)
- (get_local $22)
- )
- )
- )
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $6)
- (select
- (i32.const 9)
- (get_local $5)
- (i32.gt_s
- (get_local $5)
- (i32.const 9)
- )
- )
- (get_local $0)
- )
- )
- )
- (set_local $6
- (i32.add
- (get_local $5)
- (i32.const -9)
- )
- )
- (set_local $5
- (if (result i32)
- (i32.and
- (i32.gt_s
- (get_local $5)
- (i32.const 9)
- )
- (i32.lt_u
- (tee_local $7
+ (i32.or
+ (i32.load8_u
(i32.add
- (get_local $7)
- (i32.const 4)
+ (i32.and
+ (get_local $5)
+ (i32.const 15)
+ )
+ (i32.const 4075)
)
)
(get_local $9)
)
)
- (block
- (set_local $5
- (get_local $6)
- )
- (br $while-in110)
- )
- (get_local $6)
- )
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
- (get_local $5)
- (i32.const 9)
- )
- (i32.const 9)
- (i32.const 0)
- )
- )
- (block $do-once99
- (set_local $9
- (select
- (get_local $9)
- (i32.add
- (get_local $11)
- (i32.const 4)
- )
- (get_local $24)
- )
- )
- (if
- (i32.gt_s
- (get_local $5)
- (i32.const -1)
- )
- (block
- (set_local $18
- (i32.eqz
- (get_local $20)
- )
- )
- (set_local $6
- (get_local $11)
- )
- (set_local $7
- (get_local $5)
- )
- (loop $while-in114
- (if
- (i32.eq
- (tee_local $5
- (call $_fmt_u
- (i32.load
- (get_local $6)
+ (br_if $while-in123
+ (i32.or
+ (tee_local $5
+ (call $_bitshift64Lshr
+ (get_local $5)
+ (get_local $12)
+ (i32.const 4)
)
- (i32.const 0)
- (get_local $29)
)
- )
- (get_local $29)
- )
- (block
- (i32.store8
- (get_local $33)
- (i32.const 48)
- )
- (set_local $5
- (get_local $33)
+ (tee_local $12
+ (get_global $tempRet0)
+ )
)
)
)
- (block $do-once115
- (if
- (i32.eq
- (get_local $6)
- (get_local $11)
- )
- (block
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $5)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- (set_local $5
- (i32.add
- (get_local $5)
- (i32.const 1)
- )
- )
- (br_if $do-once115
+ (set_local $5
+ (get_local $8)
+ )
+ (set_local $8
+ (if (result i32)
+ (i32.or
+ (i32.eqz
(i32.and
- (get_local $18)
- (i32.lt_s
- (get_local $7)
- (i32.const 1)
- )
+ (get_local $7)
+ (i32.const 8)
)
)
- (br_if $do-once115
- (i32.and
+ (i32.eqz
+ (i32.or
(i32.load
- (get_local $0)
+ (get_local $14)
)
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (i32.const 4143)
- (i32.const 1)
- (get_local $0)
- )
- )
- )
- (block
- (br_if $do-once115
- (i32.le_u
- (get_local $5)
- (get_local $22)
- )
- )
- (loop $while-in118
- (i32.store8
- (tee_local $5
- (i32.add
- (get_local $5)
- (i32.const -1)
- )
- )
- (i32.const 48)
- )
- (br_if $while-in118
- (i32.gt_u
- (get_local $5)
- (get_local $22)
+ (i32.load offset=4
+ (get_local $14)
)
)
)
)
- )
- )
- (set_local $8
- (i32.sub
- (get_local $43)
- (get_local $5)
- )
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $5)
- (select
- (get_local $8)
- (get_local $7)
- (i32.gt_s
- (get_local $7)
- (get_local $8)
- )
+ (block (result i32)
+ (set_local $9
+ (i32.const 4091)
)
- (get_local $0)
+ (i32.const 0)
)
- )
- )
- (br_if $while-in114
- (i32.and
- (i32.lt_u
- (tee_local $6
+ (block (result i32)
+ (set_local $9
(i32.add
- (get_local $6)
- (i32.const 4)
- )
- )
- (get_local $9)
- )
- (i32.gt_s
- (tee_local $7
- (i32.sub
- (get_local $7)
- (get_local $8)
+ (i32.shr_s
+ (get_local $19)
+ (i32.const 4)
+ )
+ (i32.const 4091)
)
)
- (i32.const -1)
+ (i32.const 2)
)
)
)
)
- (set_local $5
- (get_local $7)
+ (block
+ (set_local $5
+ (get_local $25)
+ )
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
)
)
+ (br $__rjti$8)
)
- (call $_pad
- (get_local $0)
- (i32.const 48)
- (i32.add
+ (set_local $5
+ (call $_fmt_u
(get_local $5)
- (i32.const 18)
+ (get_local $7)
+ (get_local $25)
)
- (i32.const 18)
- (i32.const 0)
)
- (br_if $do-once99
- (i32.and
- (i32.load
- (get_local $0)
+ (set_local $7
+ (get_local $12)
+ )
+ (br $__rjti$8)
+ )
+ (set_local $19
+ (i32.eqz
+ (tee_local $13
+ (call $_memchr
+ (get_local $5)
+ (i32.const 0)
+ (get_local $6)
)
- (i32.const 32)
)
)
- (drop
- (call $___fwritex
- (get_local $19)
- (i32.sub
- (get_local $26)
- (get_local $19)
+ )
+ (set_local $12
+ (get_local $8)
+ )
+ (set_local $11
+ (select
+ (get_local $6)
+ (i32.sub
+ (get_local $13)
+ (tee_local $7
+ (get_local $5)
)
- (get_local $0)
)
+ (get_local $19)
)
)
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $13)
- (i32.xor
- (get_local $12)
- (i32.const 8192)
+ (set_local $8
+ (i32.const 0)
+ )
+ (set_local $9
+ (i32.const 4091)
+ )
+ (br $__rjto$8
+ (select
+ (i32.add
+ (get_local $5)
+ (get_local $6)
+ )
+ (get_local $13)
+ (get_local $19)
+ )
)
)
- (select
- (get_local $16)
- (get_local $13)
- (i32.lt_s
- (get_local $13)
- (get_local $16)
+ (set_local $5
+ (i32.const 0)
+ )
+ (set_local $7
+ (i32.const 0)
+ )
+ (set_local $6
+ (i32.load
+ (get_local $14)
)
)
- )
- (block (result i32)
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (tee_local $7
- (i32.add
- (tee_local $9
- (select
- (i32.const 0)
- (get_local $27)
- (tee_local $6
- (f64.ne
- (get_local $15)
- (get_local $15)
+ (loop $while-in125
+ (block $while-out124
+ (br_if $while-out124
+ (i32.eqz
+ (tee_local $9
+ (i32.load
+ (get_local $6)
+ )
+ )
+ )
+ )
+ (br_if $while-out124
+ (i32.or
+ (i32.lt_s
+ (tee_local $7
+ (call $_wctomb
+ (get_local $35)
+ (get_local $9)
)
)
+ (i32.const 0)
+ )
+ (i32.gt_u
+ (get_local $7)
+ (i32.sub
+ (get_local $8)
+ (get_local $5)
+ )
+ )
+ )
+ )
+ (set_local $6
+ (i32.add
+ (get_local $6)
+ (i32.const 4)
+ )
+ )
+ (br_if $while-in125
+ (i32.gt_u
+ (get_local $8)
+ (tee_local $5
+ (i32.add
+ (get_local $5)
+ (get_local $7)
+ )
)
)
- (i32.const 3)
)
)
- (get_local $8)
)
(if
- (i32.eqz
- (i32.and
- (tee_local $5
- (i32.load
- (get_local $0)
- )
- )
- (i32.const 32)
+ (i32.lt_s
+ (get_local $7)
+ (i32.const 0)
+ )
+ (block
+ (set_local $17
+ (i32.const -1)
)
+ (br $label$break$L1)
)
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (get_local $5)
+ (get_local $12)
+ )
+ (if
+ (get_local $5)
(block
- (drop
- (call $___fwritex
- (get_local $30)
- (get_local $9)
- (get_local $0)
- )
+ (set_local $6
+ (i32.const 0)
)
- (set_local $5
+ (set_local $7
(i32.load
- (get_local $0)
+ (get_local $14)
)
)
- )
- )
- (set_local $6
- (select
- (select
- (i32.const 4135)
- (i32.const 4139)
- (tee_local $8
- (i32.ne
+ (loop $while-in127
+ (if
+ (i32.eqz
+ (tee_local $8
+ (i32.load
+ (get_local $7)
+ )
+ )
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $__rjti$7)
+ )
+ )
+ (if
+ (i32.gt_s
+ (tee_local $6
+ (i32.add
+ (tee_local $8
+ (call $_wctomb
+ (get_local $35)
+ (get_local $8)
+ )
+ )
+ (get_local $6)
+ )
+ )
+ (get_local $5)
+ )
+ (block
+ (set_local $7
+ (get_local $5)
+ )
+ (br $__rjti$7)
+ )
+ )
+ (if
+ (i32.eqz
(i32.and
- (get_local $19)
+ (i32.load
+ (get_local $0)
+ )
(i32.const 32)
)
- (i32.const 0)
+ )
+ (drop
+ (call $___fwritex
+ (get_local $35)
+ (get_local $8)
+ (get_local $0)
+ )
+ )
+ )
+ (set_local $7
+ (i32.add
+ (get_local $7)
+ (i32.const 4)
+ )
+ )
+ (br_if $while-in127
+ (i32.lt_u
+ (get_local $6)
+ (get_local $5)
)
)
)
- (select
- (i32.const 4127)
- (i32.const 4131)
- (get_local $8)
- )
- (get_local $6)
- )
- )
- (if
- (i32.eqz
- (i32.and
+ (set_local $7
(get_local $5)
- (i32.const 32)
)
)
- (drop
- (call $___fwritex
- (get_local $6)
- (i32.const 3)
- (get_local $0)
- )
+ (set_local $7
+ (i32.const 0)
)
)
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $7)
- (i32.xor
- (get_local $12)
- (i32.const 8192)
- )
+ )
+ (call $_pad
+ (get_local $0)
+ (i32.const 32)
+ (get_local $16)
+ (get_local $7)
+ (i32.xor
+ (get_local $12)
+ (i32.const 8192)
)
+ )
+ (set_local $5
+ (get_local $10)
+ )
+ (set_local $10
(select
(get_local $16)
(get_local $7)
- (i32.lt_s
- (get_local $7)
+ (i32.gt_s
(get_local $16)
+ (get_local $7)
)
)
)
+ (br $label$continue$L1)
)
- )
- (set_local $5
- (get_local $10)
- )
- (set_local $10
- (get_local $7)
- )
- (br $label$continue$L1)
- )
- (set_local $7
- (get_local $5)
- )
- (set_local $11
- (get_local $6)
- )
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjto$8
- (get_local $25)
- )
- )
- (set_local $9
- (i32.and
- (get_local $19)
- (i32.const 32)
- )
- )
- (if
- (i32.or
- (tee_local $8
- (i32.load
- (get_local $14)
- )
- )
- (tee_local $12
- (i32.load offset=4
- (get_local $14)
- )
- )
- )
- (block
- (set_local $5
- (get_local $8)
- )
- (set_local $8
- (get_local $25)
- )
- (loop $while-in123
- (i32.store8
- (tee_local $8
- (i32.add
- (get_local $8)
- (i32.const -1)
- )
- )
- (i32.or
- (i32.load8_u
- (i32.add
- (i32.and
- (get_local $5)
- (i32.const 15)
- )
- (i32.const 4075)
- )
- )
- (get_local $9)
- )
- )
- (br_if $while-in123
- (i32.or
- (tee_local $5
- (call $_bitshift64Lshr
- (get_local $5)
- (get_local $12)
- (i32.const 4)
- )
+ (set_local $12
+ (select
+ (i32.and
+ (get_local $7)
+ (i32.const -65537)
)
- (tee_local $12
- (get_global $tempRet0)
+ (get_local $7)
+ (i32.gt_s
+ (get_local $6)
+ (i32.const -1)
)
)
)
- )
- (set_local $5
- (get_local $8)
- )
- (set_local $8
- (if (result i32)
- (i32.or
- (i32.eqz
- (i32.and
- (get_local $7)
- (i32.const 8)
+ (set_local $11
+ (if (result i32)
+ (i32.or
+ (get_local $6)
+ (tee_local $11
+ (i32.or
+ (i32.ne
+ (i32.load
+ (get_local $14)
+ )
+ (i32.const 0)
+ )
+ (i32.ne
+ (i32.load offset=4
+ (get_local $14)
+ )
+ (i32.const 0)
+ )
+ )
)
)
- (i32.eqz
- (i32.or
- (i32.load
- (get_local $14)
- )
- (i32.load offset=4
- (get_local $14)
+ (select
+ (get_local $6)
+ (tee_local $5
+ (i32.add
+ (i32.sub
+ (get_local $39)
+ (tee_local $7
+ (get_local $5)
+ )
+ )
+ (i32.xor
+ (i32.and
+ (get_local $11)
+ (i32.const 1)
+ )
+ (i32.const 1)
+ )
)
)
+ (i32.gt_s
+ (get_local $6)
+ (get_local $5)
+ )
)
- )
- (block (result i32)
- (set_local $9
- (i32.const 4091)
- )
- (i32.const 0)
- )
- (block (result i32)
- (set_local $9
- (i32.add
- (i32.shr_s
- (get_local $19)
- (i32.const 4)
- )
- (i32.const 4091)
+ (block (result i32)
+ (set_local $7
+ (get_local $25)
)
+ (i32.const 0)
)
- (i32.const 2)
)
)
- )
- )
- (block
- (set_local $5
(get_local $25)
)
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- )
- )
- (br $__rjti$8)
- )
- (set_local $5
- (call $_fmt_u
- (get_local $5)
- (get_local $7)
- (get_local $25)
- )
- )
- (set_local $7
- (get_local $12)
- )
- (br $__rjti$8)
- )
- (set_local $19
- (i32.eqz
- (tee_local $13
- (call $_memchr
- (get_local $5)
- (i32.const 0)
- (get_local $6)
- )
- )
- )
- )
- (set_local $12
- (get_local $8)
- )
- (set_local $11
- (select
- (get_local $6)
- (i32.sub
- (get_local $13)
- (tee_local $7
- (get_local $5)
- )
- )
- (get_local $19)
- )
- )
- (set_local $8
- (i32.const 0)
- )
- (set_local $9
- (i32.const 4091)
- )
- (br $__rjto$8
- (select
- (i32.add
- (get_local $5)
- (get_local $6)
- )
- (get_local $13)
- (get_local $19)
- )
- )
- )
- (set_local $5
- (i32.const 0)
- )
- (set_local $7
- (i32.const 0)
- )
- (set_local $6
- (i32.load
- (get_local $14)
- )
- )
- (loop $while-in125
- (block $while-out124
- (br_if $while-out124
- (i32.eqz
- (tee_local $9
- (i32.load
- (get_local $6)
- )
- )
- )
- )
- (br_if $while-out124
- (i32.or
- (i32.lt_s
- (tee_local $7
- (call $_wctomb
- (get_local $35)
- (get_local $9)
- )
- )
- (i32.const 0)
- )
- (i32.gt_u
- (get_local $7)
- (i32.sub
- (get_local $8)
- (get_local $5)
- )
- )
- )
- )
- (set_local $6
- (i32.add
- (get_local $6)
- (i32.const 4)
- )
- )
- (br_if $while-in125
- (i32.gt_u
- (get_local $8)
- (tee_local $5
- (i32.add
- (get_local $7)
- (get_local $5)
- )
- )
- )
- )
- )
- )
- (if
- (i32.lt_s
- (get_local $7)
- (i32.const 0)
- )
- (block
- (set_local $17
- (i32.const -1)
- )
- (br $label$break$L1)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $5)
- (get_local $12)
- )
- (if
- (get_local $5)
- (block
- (set_local $6
- (i32.const 0)
- )
- (set_local $7
- (i32.load
- (get_local $14)
- )
- )
- (loop $while-in127
- (if
- (i32.eqz
- (tee_local $8
- (i32.load
- (get_local $7)
- )
- )
- )
- (block
- (set_local $7
- (get_local $5)
- )
- (br $__rjti$7)
- )
- )
- (if
- (i32.gt_s
- (tee_local $6
- (i32.add
- (tee_local $8
- (call $_wctomb
- (get_local $35)
- (get_local $8)
- )
- )
- (get_local $6)
- )
- )
- (get_local $5)
- )
- (block
- (set_local $7
- (get_local $5)
- )
- (br $__rjti$7)
- )
- )
- (if
- (i32.eqz
- (i32.and
- (i32.load
- (get_local $0)
- )
- (i32.const 32)
- )
- )
- (drop
- (call $___fwritex
- (get_local $35)
- (get_local $8)
- (get_local $0)
- )
- )
- )
- (set_local $7
- (i32.add
- (get_local $7)
- (i32.const 4)
- )
- )
- (br_if $while-in127
- (i32.lt_u
- (get_local $6)
- (get_local $5)
- )
- )
- )
- (set_local $7
- (get_local $5)
- )
- )
- (set_local $7
- (i32.const 0)
- )
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (get_local $16)
- (get_local $7)
- (i32.xor
- (get_local $12)
- (i32.const 8192)
- )
- )
- (set_local $5
- (get_local $10)
- )
- (set_local $10
- (select
- (get_local $16)
- (get_local $7)
- (i32.gt_s
- (get_local $16)
- (get_local $7)
- )
- )
- )
- (br $label$continue$L1)
- )
- (set_local $12
- (select
- (i32.and
- (get_local $7)
- (i32.const -65537)
- )
- (get_local $7)
- (i32.gt_s
- (get_local $6)
- (i32.const -1)
- )
- )
- )
- (set_local $11
- (if (result i32)
- (i32.or
- (get_local $6)
- (tee_local $11
- (i32.or
- (i32.ne
- (i32.load
- (get_local $14)
- )
- (i32.const 0)
- )
- (i32.ne
- (i32.load offset=4
- (get_local $14)
- )
- (i32.const 0)
- )
- )
- )
- )
- (select
- (get_local $6)
- (tee_local $5
- (i32.add
- (i32.xor
- (i32.and
- (get_local $11)
- (i32.const 1)
- )
- (i32.const 1)
- )
- (i32.sub
- (get_local $39)
- (tee_local $7
- (get_local $5)
- )
- )
- )
- )
- (i32.gt_s
- (get_local $6)
- (get_local $5)
- )
- )
- (block (result i32)
- (set_local $7
- (get_local $25)
- )
- (i32.const 0)
- )
- )
- )
- (get_local $25)
- )
- )
- (call $_pad
- (get_local $0)
- (i32.const 32)
- (tee_local $6
- (select
- (tee_local $5
- (i32.add
- (get_local $8)
- (tee_local $11
- (select
- (tee_local $13
- (i32.sub
- (get_local $5)
(get_local $7)
)
)
@@ -6823,6 +6818,7 @@
)
)
)
+ (get_local $8)
)
)
(get_local $16)
@@ -7419,10 +7415,6 @@
(local $4 i32)
(if
(i32.or
- (i32.gt_u
- (get_local $1)
- (i32.const 0)
- )
(i32.and
(i32.eqz
(get_local $1)
@@ -7432,6 +7424,10 @@
(i32.const -1)
)
)
+ (i32.gt_u
+ (get_local $1)
+ (i32.const 0)
+ )
)
(loop $while-in
(i32.store8
@@ -7465,10 +7461,6 @@
(set_local $0
(if (result i32)
(i32.or
- (i32.gt_u
- (get_local $1)
- (i32.const 9)
- )
(i32.and
(i32.eq
(get_local $1)
@@ -7479,6 +7471,10 @@
(i32.const -1)
)
)
+ (i32.gt_u
+ (get_local $1)
+ (i32.const 9)
+ )
)
(block
(set_local $0
diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions.txt
index 51a5113b1..7d82ae8b1 100644
--- a/test/passes/optimize-instructions.txt
+++ b/test/passes/optimize-instructions.txt
@@ -1,17 +1,18 @@
(module
(type $0 (func (param i32 i64)))
(type $1 (func))
- (type $2 (func (result i32)))
- (type $3 (func (param i32) (result i32)))
- (type $4 (func (param i32 i32)))
- (type $5 (func (param i32)))
- (type $6 (func (param i32 i32) (result i32)))
- (type $7 (func (param i64) (result i64)))
- (type $8 (func (result i64)))
- (type $9 (func (param i32 i64 f32 f64)))
- (type $10 (func (param i32 i64 f32)))
- (type $11 (func (param i32 i64 f64 i32)))
- (type $12 (func (result f64)))
+ (type $2 (func (param i32 i32 f64 f64)))
+ (type $3 (func (result i32)))
+ (type $4 (func (param i32) (result i32)))
+ (type $5 (func (param i32 i32)))
+ (type $6 (func (param i32)))
+ (type $7 (func (param i32 i32) (result i32)))
+ (type $8 (func (param i64) (result i64)))
+ (type $9 (func (result i64)))
+ (type $10 (func (param i32 i64 f32 f64)))
+ (type $11 (func (param i32 i64 f32)))
+ (type $12 (func (param i32 i64 f64 i32)))
+ (type $13 (func (result f64)))
(memory $0 0)
(export "load-off-2" (func $load-off-2))
(func $f (; 0 ;) (type $0) (param $i1 i32) (param $i2 i64)
@@ -346,7 +347,7 @@
)
)
)
- (func $canonicalize-binary (; 4 ;) (type $1)
+ (func $canonicalize (; 4 ;) (type $2) (param $x i32) (param $y i32) (param $fx f64) (param $fy f64)
(drop
(i32.and
(unreachable)
@@ -371,8 +372,208 @@
(unreachable)
)
)
+ (drop
+ (i32.and
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (drop
+ (i32.and
+ (get_local $x)
+ (i32.const 3)
+ )
+ )
+ (drop
+ (i32.and
+ (get_local $x)
+ (i32.const 4)
+ )
+ )
+ (drop
+ (i32.and
+ (get_local $x)
+ (get_local $y)
+ )
+ )
+ (drop
+ (i32.and
+ (get_local $x)
+ (get_local $y)
+ )
+ )
+ (drop
+ (i32.and
+ (tee_local $x
+ (i32.const -4)
+ )
+ (get_local $y)
+ )
+ )
+ (drop
+ (i32.and
+ (block $block (result i32)
+ (i32.const -5)
+ )
+ (get_local $x)
+ )
+ )
+ (drop
+ (i32.and
+ (block $block3 (result i32)
+ (i32.const -6)
+ )
+ (get_local $x)
+ )
+ )
+ (drop
+ (i32.and
+ (block $block4 (result i32)
+ (i32.const 5)
+ )
+ (loop $loop-in (result i32)
+ (i32.const 6)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (block $block6 (result i32)
+ (i32.const 8)
+ )
+ (loop $loop-in5 (result i32)
+ (i32.const 7)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (block $block8 (result i32)
+ (i32.const 10)
+ )
+ (loop $loop-in7 (result i32)
+ (call $and-pos1)
+ (i32.const 9)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (block $block10 (result i32)
+ (call $and-pos1)
+ (i32.const 12)
+ )
+ (loop $loop-in9 (result i32)
+ (i32.const 11)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (loop $loop-in11 (result i32)
+ (call $and-pos1)
+ (i32.const 13)
+ )
+ (block $block12 (result i32)
+ (call $and-pos1)
+ (i32.const 14)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (block $block13 (result i32)
+ (call $and-pos1)
+ (i32.const 14)
+ )
+ (loop $loop-in14 (result i32)
+ (call $and-pos1)
+ (i32.const 13)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (block $block15 (result i32)
+ (i32.const 15)
+ )
+ (get_local $x)
+ )
+ )
+ (drop
+ (i32.and
+ (block $block16 (result i32)
+ (i32.const 15)
+ )
+ (get_local $x)
+ )
+ )
+ (drop
+ (i32.and
+ (i32.gt_s
+ (i32.const 16)
+ (i32.const 17)
+ )
+ (i32.gt_u
+ (i32.const 18)
+ (i32.const 19)
+ )
+ )
+ )
+ (drop
+ (i32.and
+ (i32.gt_s
+ (i32.const 22)
+ (i32.const 23)
+ )
+ (i32.gt_u
+ (i32.const 20)
+ (i32.const 21)
+ )
+ )
+ )
+ (drop
+ (i32.add
+ (i32.ctz
+ (get_local $x)
+ )
+ (i32.ctz
+ (get_local $y)
+ )
+ )
+ )
+ (drop
+ (i32.add
+ (i32.ctz
+ (get_local $y)
+ )
+ (i32.ctz
+ (get_local $x)
+ )
+ )
+ )
+ (drop
+ (i32.add
+ (i32.ctz
+ (get_local $x)
+ )
+ (i32.eqz
+ (get_local $y)
+ )
+ )
+ )
+ (drop
+ (i32.add
+ (i32.ctz
+ (get_local $y)
+ )
+ (i32.eqz
+ (get_local $x)
+ )
+ )
+ )
)
- (func $ne0 (; 5 ;) (type $2) (result i32)
+ (func $ne0 (; 5 ;) (type $3) (result i32)
(if
(call $ne0)
(nop)
@@ -420,10 +621,10 @@
(nop)
)
)
- (func $ne1 (; 7 ;) (type $2) (result i32)
+ (func $ne1 (; 7 ;) (type $3) (result i32)
(unreachable)
)
- (func $load-off-2 (; 8 ;) (type $3) (param $0 i32) (result i32)
+ (func $load-off-2 (; 8 ;) (type $4) (param $0 i32) (result i32)
(i32.store
(i32.const 6)
(get_local $0)
@@ -506,7 +707,7 @@
)
)
)
- (func $sign-ext (; 9 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext (; 9 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.eqz
(i32.and
@@ -617,7 +818,7 @@
)
)
)
- (func $sign-ext-input (; 10 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-input (; 10 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.const 100)
)
@@ -936,11 +1137,11 @@
(i32.shr_s
(i32.shl
(i32.xor
+ (get_local $0)
(i32.le_u
(get_local $0)
(i32.const 2)
)
- (get_local $0)
)
(i32.const 24)
)
@@ -948,14 +1149,14 @@
)
)
)
- (func $linear-sums (; 11 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $linear-sums (; 11 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.add
- (get_local $1)
(i32.shl
(get_local $0)
(i32.const 4)
)
+ (get_local $1)
)
)
(drop
@@ -1040,7 +1241,7 @@
(get_local $0)
)
)
- (func $almost-sign-ext (; 12 ;) (type $4) (param $0 i32) (param $0 i32)
+ (func $almost-sign-ext (; 12 ;) (type $5) (param $0 i32) (param $0 i32)
(drop
(i32.shr_s
(i32.shl
@@ -1057,7 +1258,7 @@
)
)
)
- (func $squaring (; 13 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $squaring (; 13 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.and
(get_local $0)
@@ -1066,11 +1267,11 @@
)
(drop
(i32.and
+ (get_local $0)
(i32.and
(get_local $0)
(i32.const 11)
)
- (get_local $0)
)
)
(drop
@@ -1113,7 +1314,7 @@
)
)
)
- (func $sign-ext-ne (; 14 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-ne (; 14 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.ne
(i32.and
@@ -1163,7 +1364,7 @@
)
)
)
- (func $sign-ext-eqz (; 15 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-eqz (; 15 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.eqz
(i32.and
@@ -1173,7 +1374,7 @@
)
)
)
- (func $sign-ext-boolean (; 16 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-boolean (; 16 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(if (result i32)
(i32.and
@@ -1185,7 +1386,7 @@
)
)
)
- (func $add-sub-zero (; 17 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $add-sub-zero (; 17 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(get_local $0)
)
@@ -1193,7 +1394,7 @@
(get_local $0)
)
)
- (func $store-signext (; 18 ;) (type $5) (param $0 i32)
+ (func $store-signext (; 18 ;) (type $6) (param $0 i32)
(i32.store8
(i32.const 8)
(get_local $0)
@@ -1251,7 +1452,7 @@
)
)
)
- (func $sign-ext-tee (; 19 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-tee (; 19 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.shr_s
(i32.shl
@@ -1269,7 +1470,7 @@
)
)
)
- (func $sign-ext-load (; 20 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $sign-ext-load (; 20 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.load8_s
(i32.const 256)
@@ -1340,7 +1541,7 @@
)
)
)
- (func $mask-bits (; 21 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $mask-bits (; 21 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(tee_local $0
(i32.const 127)
@@ -1394,7 +1595,7 @@
)
)
)
- (func $local-info-zero-ext (; 22 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $local-info-zero-ext (; 22 ;) (type $5) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1445,7 +1646,7 @@
)
)
)
- (func $local-info-sign-ext-bitsize (; 23 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $local-info-sign-ext-bitsize (; 23 ;) (type $5) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1505,7 +1706,7 @@
)
)
)
- (func $local-info-sign-ext-already-exted (; 24 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $local-info-sign-ext-already-exted (; 24 ;) (type $5) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1616,7 +1817,7 @@
)
)
)
- (func $signed-loads-fill-the-bits (; 25 ;) (type $3) (param $$e i32) (result i32)
+ (func $signed-loads-fill-the-bits (; 25 ;) (type $4) (param $$e i32) (result i32)
(local $$0 i32)
(local $$conv i32)
(set_local $$0
@@ -1632,12 +1833,12 @@
)
(return
(i32.eq
- (get_local $$conv)
(get_local $$e)
+ (get_local $$conv)
)
)
)
- (func $local-info-sign-ext-already-exted-by-load (; 26 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $local-info-sign-ext-already-exted-by-load (; 26 ;) (type $5) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
@@ -1679,7 +1880,7 @@
)
)
)
- (func $compare-load-s-sign-extend (; 27 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $compare-load-s-sign-extend (; 27 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.eq
(i32.load8_u
@@ -1693,13 +1894,13 @@
)
(drop
(i32.eq
+ (i32.load8_u
+ (get_local $0)
+ )
(i32.and
(get_local $1)
(i32.const 255)
)
- (i32.load8_u
- (get_local $0)
- )
)
)
(drop
@@ -1732,6 +1933,9 @@
)
(drop
(i32.eq
+ (i32.load8_u
+ (get_local $0)
+ )
(i32.shr_s
(i32.shl
(get_local $1)
@@ -1739,13 +1943,13 @@
)
(i32.const 24)
)
- (i32.load8_u
- (get_local $0)
- )
)
)
(drop
(i32.eq
+ (i32.load8_s
+ (get_local $0)
+ )
(i32.shr_s
(i32.shl
(get_local $1)
@@ -1753,13 +1957,10 @@
)
(i32.const 16)
)
- (i32.load8_s
- (get_local $0)
- )
)
)
)
- (func $unsign-diff-sizes (; 28 ;) (type $6) (param $x i32) (param $y i32) (result i32)
+ (func $unsign-diff-sizes (; 28 ;) (type $7) (param $x i32) (param $y i32) (result i32)
(i32.ne
(i32.shr_s
(i32.shl
@@ -1783,7 +1984,7 @@
)
)
)
- (func $unsign-same-sizes (; 29 ;) (type $6) (param $x i32) (param $y i32) (result i32)
+ (func $unsign-same-sizes (; 29 ;) (type $7) (param $x i32) (param $y i32) (result i32)
(i32.ne
(i32.and
(call $unsign-same-sizes
@@ -1825,7 +2026,7 @@
)
)
)
- (func $fuzz-comp-impossible (; 31 ;) (type $5) (param $x i32)
+ (func $fuzz-comp-impossible (; 31 ;) (type $6) (param $x i32)
(drop
(i32.eq
(i32.and
@@ -1890,7 +2091,7 @@
)
)
)
- (func $if-parallel (; 32 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $if-parallel (; 32 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.add
(get_local $1)
@@ -1945,7 +2146,7 @@
)
)
)
- (func $select-parallel (; 33 ;) (type $4) (param $0 i32) (param $1 i32)
+ (func $select-parallel (; 33 ;) (type $5) (param $0 i32) (param $1 i32)
(drop
(i32.add
(get_local $1)
@@ -2022,7 +2223,7 @@
)
)
)
- (func $zero-ops (; 35 ;) (type $2) (result i32)
+ (func $zero-ops (; 35 ;) (type $3) (result i32)
(return
(i32.eq
(i32.load16_s align=1
@@ -2032,7 +2233,7 @@
)
)
)
- (func $sign-ext-1-and-ne (; 36 ;) (type $2) (result i32)
+ (func $sign-ext-1-and-ne (; 36 ;) (type $3) (result i32)
(i32.ne
(i32.and
(call $sign-ext-1-and-ne)
@@ -2041,7 +2242,7 @@
(i32.const -2147483648)
)
)
- (func $neg-shifts-and-255 (; 37 ;) (type $2) (result i32)
+ (func $neg-shifts-and-255 (; 37 ;) (type $3) (result i32)
(i32.and
(i32.shr_u
(i32.const -99)
@@ -2050,7 +2251,7 @@
(i32.const 255)
)
)
- (func $neg-shifts-and-255-b (; 38 ;) (type $2) (result i32)
+ (func $neg-shifts-and-255-b (; 38 ;) (type $3) (result i32)
(i32.and
(i32.shl
(i32.const -2349025)
@@ -2059,7 +2260,7 @@
(i32.const 255)
)
)
- (func $shifts-square-overflow (; 39 ;) (type $3) (param $x i32) (result i32)
+ (func $shifts-square-overflow (; 39 ;) (type $4) (param $x i32) (result i32)
(i32.shr_u
(i32.shr_u
(get_local $x)
@@ -2068,13 +2269,13 @@
(i32.const 32767)
)
)
- (func $shifts-square-no-overflow-small (; 40 ;) (type $3) (param $x i32) (result i32)
+ (func $shifts-square-no-overflow-small (; 40 ;) (type $4) (param $x i32) (result i32)
(i32.shr_u
(get_local $x)
(i32.const 9)
)
)
- (func $shifts-square-overflow-64 (; 41 ;) (type $7) (param $x i64) (result i64)
+ (func $shifts-square-overflow-64 (; 41 ;) (type $8) (param $x i64) (result i64)
(i64.shr_u
(i64.shr_u
(get_local $x)
@@ -2083,13 +2284,13 @@
(i64.const 64767)
)
)
- (func $shifts-square-no-overflow-small-64 (; 42 ;) (type $7) (param $x i64) (result i64)
+ (func $shifts-square-no-overflow-small-64 (; 42 ;) (type $8) (param $x i64) (result i64)
(i64.shr_u
(get_local $x)
(i64.const 9)
)
)
- (func $shifts-square-unreachable (; 43 ;) (type $3) (param $x i32) (result i32)
+ (func $shifts-square-unreachable (; 43 ;) (type $4) (param $x i32) (result i32)
(i32.shr_u
(i32.shr_u
(unreachable)
@@ -2098,7 +2299,7 @@
(i32.const 4098)
)
)
- (func $mix-shifts (; 44 ;) (type $2) (result i32)
+ (func $mix-shifts (; 44 ;) (type $3) (result i32)
(i32.shr_s
(i32.shl
(i32.const 23)
@@ -2107,13 +2308,13 @@
(i32.const 168)
)
)
- (func $actually-no-shifts (; 45 ;) (type $2) (result i32)
+ (func $actually-no-shifts (; 45 ;) (type $3) (result i32)
(i32.const 33)
)
- (func $less-shifts-than-it-seems (; 46 ;) (type $3) (param $x i32) (result i32)
+ (func $less-shifts-than-it-seems (; 46 ;) (type $4) (param $x i32) (result i32)
(i32.const 4800)
)
- (func $and-popcount32 (; 47 ;) (type $2) (result i32)
+ (func $and-popcount32 (; 47 ;) (type $3) (result i32)
(i32.and
(i32.popcnt
(i32.const -1)
@@ -2121,12 +2322,12 @@
(i32.const 31)
)
)
- (func $and-popcount32-big (; 48 ;) (type $2) (result i32)
+ (func $and-popcount32-big (; 48 ;) (type $3) (result i32)
(i32.popcnt
(i32.const -1)
)
)
- (func $and-popcount64 (; 49 ;) (type $8) (result i64)
+ (func $and-popcount64 (; 49 ;) (type $9) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
@@ -2134,7 +2335,7 @@
(i64.const 63)
)
)
- (func $and-popcount64-big (; 50 ;) (type $8) (result i64)
+ (func $and-popcount64-big (; 50 ;) (type $9) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
@@ -2142,7 +2343,7 @@
(i64.const 127)
)
)
- (func $and-popcount64-bigger (; 51 ;) (type $8) (result i64)
+ (func $and-popcount64-bigger (; 51 ;) (type $9) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
@@ -2150,7 +2351,7 @@
(i64.const 255)
)
)
- (func $optimizeAddedConstants-filters-through-nonzero (; 52 ;) (type $2) (result i32)
+ (func $optimizeAddedConstants-filters-through-nonzero (; 52 ;) (type $3) (result i32)
(i32.add
(i32.shl
(i32.const -536870912)
@@ -2161,7 +2362,7 @@
(i32.const -31744)
)
)
- (func $optimizeAddedConstants-filters-through-nonzero-b (; 53 ;) (type $2) (result i32)
+ (func $optimizeAddedConstants-filters-through-nonzero-b (; 53 ;) (type $3) (result i32)
(i32.add
(i32.shl
(i32.const -536870912)
@@ -2172,7 +2373,7 @@
(i32.const -31744)
)
)
- (func $return-proper-value-from-shift-left-by-zero (; 54 ;) (type $2) (result i32)
+ (func $return-proper-value-from-shift-left-by-zero (; 54 ;) (type $3) (result i32)
(if (result i32)
(i32.add
(loop $label$0 (result i32)
@@ -2191,7 +2392,7 @@
(i32.const 0)
)
)
- (func $de-morgan-2 (; 55 ;) (type $4) (param $x i32) (param $y i32)
+ (func $de-morgan-2 (; 55 ;) (type $5) (param $x i32) (param $y i32)
(drop
(i32.eqz
(i32.or
@@ -2222,18 +2423,18 @@
)
(drop
(i32.and
+ (get_local $y)
(i32.eqz
(get_local $x)
)
- (get_local $y)
)
)
(drop
(i32.and
- (get_local $x)
(i32.eqz
(get_local $y)
)
+ (get_local $x)
)
)
(drop
@@ -2248,16 +2449,16 @@
)
(drop
(i32.and
- (i32.wrap/i64
- (i64.const 1)
- )
(i32.eqz
(get_local $y)
)
+ (i32.wrap/i64
+ (i64.const 1)
+ )
)
)
)
- (func $subzero1 (; 56 ;) (type $3) (param $0 i32) (result i32)
+ (func $subzero1 (; 56 ;) (type $4) (param $0 i32) (result i32)
(i32.sub
(i32.const 32)
(i32.clz
@@ -2265,7 +2466,7 @@
)
)
)
- (func $subzero2 (; 57 ;) (type $3) (param $0 i32) (result i32)
+ (func $subzero2 (; 57 ;) (type $4) (param $0 i32) (result i32)
(i32.sub
(i32.const 32)
(i32.clz
@@ -2273,7 +2474,7 @@
)
)
)
- (func $subzero3 (; 58 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $subzero3 (; 58 ;) (type $7) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(i32.clz
@@ -2281,7 +2482,7 @@
)
)
)
- (func $subzero4 (; 59 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
+ (func $subzero4 (; 59 ;) (type $7) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(i32.clz
@@ -2289,7 +2490,7 @@
)
)
)
- (func $mul-power-2 (; 60 ;) (type $3) (param $x i32) (result i32)
+ (func $mul-power-2 (; 60 ;) (type $4) (param $x i32) (result i32)
(drop
(call $mul-power-2
(i32.shl
@@ -2344,7 +2545,7 @@
)
(unreachable)
)
- (func $urem-power-2 (; 61 ;) (type $3) (param $x i32) (result i32)
+ (func $urem-power-2 (; 61 ;) (type $4) (param $x i32) (result i32)
(drop
(call $urem-power-2
(i32.and
@@ -2392,10 +2593,10 @@
)
(unreachable)
)
- (func $orZero (; 62 ;) (type $3) (param $0 i32) (result i32)
+ (func $orZero (; 62 ;) (type $4) (param $0 i32) (result i32)
(get_local $0)
)
- (func $andZero (; 63 ;) (type $3) (param $0 i32) (result i32)
+ (func $andZero (; 63 ;) (type $4) (param $0 i32) (result i32)
(drop
(i32.const 0)
)
@@ -2409,7 +2610,7 @@
)
(unreachable)
)
- (func $abstract-additions (; 64 ;) (type $9) (param $x32 i32) (param $x64 i64) (param $y32 f32) (param $y64 f64)
+ (func $abstract-additions (; 64 ;) (type $10) (param $x32 i32) (param $x64 i64) (param $y32 f32) (param $y64 f64)
(drop
(get_local $x32)
)
@@ -2565,11 +2766,11 @@
)
(drop
(i32.eq
- (get_local $x32)
(i32.add
(get_local $x32)
(i32.const 10)
)
+ (get_local $x32)
)
)
(drop
@@ -2580,29 +2781,29 @@
)
(drop
(i32.eq
- (get_local $x32)
(i32.sub
(get_local $x32)
(i32.const 30)
)
+ (get_local $x32)
)
)
(drop
(i32.eq
- (get_local $x32)
- (i32.add
+ (i32.sub
(get_local $x32)
(i32.const 30)
)
+ (get_local $x32)
)
)
(drop
(i32.eq
- (get_local $x32)
(i32.sub
(get_local $x32)
(i32.const 10)
)
+ (get_local $x32)
)
)
(drop
@@ -2615,7 +2816,7 @@
)
)
)
- (func $negatives-are-sometimes-better (; 65 ;) (type $10) (param $x i32) (param $y i64) (param $z f32)
+ (func $negatives-are-sometimes-better (; 65 ;) (type $11) (param $x i32) (param $y i64) (param $z f32)
(drop
(i32.sub
(get_local $x)
@@ -2713,7 +2914,7 @@
)
)
)
- (func $shift-a-zero (; 66 ;) (type $10) (param $x i32) (param $y i64) (param $z f32)
+ (func $shift-a-zero (; 66 ;) (type $11) (param $x i32) (param $y i64) (param $z f32)
(drop
(i32.const 0)
)
@@ -2733,7 +2934,7 @@
)
)
)
- (func $identical-siblings (; 67 ;) (type $11) (param $x i32) (param $y i64) (param $z f64) (param $xx i32)
+ (func $identical-siblings (; 67 ;) (type $12) (param $x i32) (param $y i64) (param $z f64) (param $xx i32)
(drop
(i32.const 0)
)
@@ -2870,7 +3071,7 @@
(get_local $x)
)
)
- (func $select-on-const (; 70 ;) (type $4) (param $x i32) (param $y i32)
+ (func $select-on-const (; 70 ;) (type $5) (param $x i32) (param $y i32)
(drop
(get_local $x)
)
@@ -2986,7 +3187,7 @@
)
)
)
- (func $tee-with-unreachable-value (; 72 ;) (type $12) (result f64)
+ (func $tee-with-unreachable-value (; 72 ;) (type $13) (result f64)
(local $var$0 i32)
(block $label$1 (result f64)
(tee_local $var$0
@@ -2997,7 +3198,7 @@
)
)
)
- (func $add-sub-zero-reorder-1 (; 73 ;) (type $3) (param $temp i32) (result i32)
+ (func $add-sub-zero-reorder-1 (; 73 ;) (type $4) (param $temp i32) (result i32)
(i32.add
(i32.add
(i32.sub
@@ -3011,7 +3212,7 @@
(i32.const 2)
)
)
- (func $add-sub-zero-reorder-2 (; 74 ;) (type $3) (param $temp i32) (result i32)
+ (func $add-sub-zero-reorder-2 (; 74 ;) (type $4) (param $temp i32) (result i32)
(i32.add
(i32.sub
(tee_local $temp
diff --git a/test/passes/optimize-instructions.wast b/test/passes/optimize-instructions.wast
index 9ab5127a3..234b3913b 100644
--- a/test/passes/optimize-instructions.wast
+++ b/test/passes/optimize-instructions.wast
@@ -283,11 +283,120 @@
(drop (i32.and (i32.const 100) (i32.const 1)))
(drop (i32.and (i32.lt_s (i32.const 2000) (i32.const 3000)) (i32.const 1)))
)
- (func $canonicalize-binary
+ (func $canonicalize (param $x i32) (param $y i32) (param $fx f64) (param $fy f64)
(drop (i32.and (unreachable) (i32.const 1))) ;; ok to reorder
(drop (i32.and (i32.const 1) (unreachable)))
(drop (i32.div_s (unreachable) (i32.const 1))) ;; not ok
(drop (i32.div_s (i32.const 1) (unreachable)))
+ ;; the various orderings
+ (drop (i32.and (i32.const 1) (i32.const 2)))
+ (drop (i32.and (get_local $x) (i32.const 3)))
+ (drop (i32.and (i32.const 4) (get_local $x)))
+ (drop (i32.and (get_local $x) (get_local $y)))
+ (drop (i32.and (get_local $y) (get_local $x)))
+ (drop (i32.and (get_local $y) (tee_local $x (i32.const -4))))
+ (drop (i32.and
+ (block (result i32)
+ (i32.const -5)
+ )
+ (get_local $x)
+ ))
+ (drop (i32.and
+ (get_local $x)
+ (block (result i32)
+ (i32.const -6)
+ )
+ ))
+ (drop (i32.and
+ (block (result i32)
+ (i32.const 5)
+ )
+ (loop (result i32)
+ (i32.const 6)
+ )
+ ))
+ (drop (i32.and
+ (loop (result i32)
+ (i32.const 7)
+ )
+ (block (result i32)
+ (i32.const 8)
+ )
+ ))
+ (drop (i32.and
+ (loop (result i32)
+ (call $and-pos1)
+ (i32.const 9)
+ )
+ (block (result i32)
+ (i32.const 10)
+ )
+ ))
+ (drop (i32.and
+ (loop (result i32)
+ (i32.const 11)
+ )
+ (block (result i32)
+ (call $and-pos1)
+ (i32.const 12)
+ )
+ ))
+ (drop (i32.and
+ (loop (result i32)
+ (call $and-pos1)
+ (i32.const 13)
+ )
+ (block (result i32)
+ (call $and-pos1)
+ (i32.const 14)
+ )
+ ))
+ (drop (i32.and
+ (block (result i32)
+ (call $and-pos1)
+ (i32.const 14)
+ )
+ (loop (result i32)
+ (call $and-pos1)
+ (i32.const 13)
+ )
+ ))
+ (drop (i32.and
+ (block (result i32)
+ (i32.const 15)
+ )
+ (get_local $x)
+ ))
+ (drop (i32.and
+ (get_local $x)
+ (block (result i32)
+ (i32.const 15)
+ )
+ ))
+ (drop (i32.and
+ (i32.gt_s
+ (i32.const 16)
+ (i32.const 17)
+ )
+ (i32.gt_u
+ (i32.const 18)
+ (i32.const 19)
+ )
+ ))
+ (drop (i32.and
+ (i32.gt_u
+ (i32.const 20)
+ (i32.const 21)
+ )
+ (i32.gt_s
+ (i32.const 22)
+ (i32.const 23)
+ )
+ ))
+ (drop (i32.add (i32.ctz (get_local $x)) (i32.ctz (get_local $y))))
+ (drop (i32.add (i32.ctz (get_local $y)) (i32.ctz (get_local $x))))
+ (drop (i32.add (i32.ctz (get_local $x)) (i32.eqz (get_local $y))))
+ (drop (i32.add (i32.eqz (get_local $x)) (i32.ctz (get_local $y))))
)
(func $ne0 (result i32)
(if (i32.ne (call $ne0) (i32.const 0))
diff --git a/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt
index 14c82d38e..3e83b5894 100644
--- a/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt
+++ b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt
@@ -29,13 +29,13 @@
(i32.rem_s
(i32.add
(i32.mul
+ (get_local $0)
(tee_local $7
(i32.add
(get_local $0)
(i32.const 2)
)
)
- (get_local $0)
)
(i32.const 17)
)
@@ -115,10 +115,10 @@
(i32.rem_s
(i32.add
(i32.mul
+ (get_local $0)
(tee_local $7
(get_local $0)
)
- (get_local $0)
)
(i32.const 17)
)
@@ -208,10 +208,10 @@
(i32.rem_s
(i32.add
(i32.mul
+ (get_local $0)
(i32.eqz
(get_local $0)
)
- (get_local $0)
)
(i32.const 17)
)