summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/passes/translate-to-fuzz.txt1880
-rw-r--r--test/reduce/imports.wast.txt5
2 files changed, 1092 insertions, 793 deletions
diff --git a/test/passes/translate-to-fuzz.txt b/test/passes/translate-to-fuzz.txt
index c1febc37d..3bd65e51d 100644
--- a/test/passes/translate-to-fuzz.txt
+++ b/test/passes/translate-to-fuzz.txt
@@ -1,34 +1,28 @@
(module
- (type $FUNCSIG$i (func (result i32)))
- (type $FUNCSIG$vjifiiji (func (param i64 i32 f32 i32 i32 i64 i32)))
- (type $FUNCSIG$jdfiid (func (param f64 f32 i32 i32 f64) (result i64)))
(type $FUNCSIG$v (func))
+ (type $FUNCSIG$ijdfd (func (param i64 f64 f32 f64) (result i32)))
+ (type $FUNCSIG$j (func (result i64)))
+ (import "fuzzing-support" "log-i32" (func $log-i32 (param i32)))
+ (import "fuzzing-support" "log-i64" (func $log-i64 (param i64)))
+ (import "fuzzing-support" "log-f32" (func $log-f32 (param f32)))
+ (import "fuzzing-support" "log-f64" (func $log-f64 (param f64)))
(memory $0 (shared 1 1))
(data (i32.const 0) "n\00\05E\00\00\00\00")
- (table $0 2 2 anyfunc)
- (elem (i32.const 0) $func_2 $func_14)
+ (table $0 4 anyfunc)
+ (elem (i32.const 0) $func_7 $func_14 $func_14 $func_14)
(global $global$0 (mut f32) (f32.const 536870912))
(global $global$1 (mut f32) (f32.const 2147483648))
(global $global$2 (mut f64) (f64.const -1048576))
(global $global$3 (mut f64) (f64.const 23643))
(global $hangLimit (mut i32) (i32.const 10))
- (export "func_0" (func $func_0))
- (export "func_1" (func $func_1))
- (export "func_3" (func $func_3))
- (export "func_3_invoker" (func $func_3_invoker))
(export "func_5_invoker" (func $func_5_invoker))
- (export "func_7_invoker" (func $func_7_invoker))
- (export "func_10_invoker" (func $func_10_invoker))
- (export "func_13" (func $func_13))
+ (export "func_9_invoker" (func $func_9_invoker))
+ (export "func_11" (func $func_11))
+ (export "func_12" (func $func_12))
+ (export "func_12_invoker" (func $func_12_invoker))
(export "hangLimitInitializer" (func $hangLimitInitializer))
- (func $func_0 (; 0 ;) (type $FUNCSIG$i) (result i32)
- (local $0 i32)
- (local $1 i64)
- (local $2 f32)
- (local $3 f64)
- (local $4 f32)
+ (func $func_4 (; 4 ;) (param $0 f32) (param $1 i64) (param $2 i32) (param $3 f32) (param $4 f64) (result f32)
(local $5 f32)
- (local $6 f64)
(block
(if
(i32.eqz
@@ -45,17 +39,28 @@
)
)
)
- (tee_local $0
- (get_local $0)
+ (block $label$0
+ (set_local $0
+ (f32.const -32)
+ )
+ (return
+ (get_local $5)
+ )
)
)
- (func $func_1 (; 1 ;) (type $FUNCSIG$vjifiiji) (param $0 i64) (param $1 i32) (param $2 f32) (param $3 i32) (param $4 i32) (param $5 i64) (param $6 i32)
+ (func $func_5 (; 5 ;) (result f64)
+ (local $0 i32)
+ (local $1 i32)
+ (local $2 i64)
+ (local $3 i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
- (return)
+ (return
+ (f64.const 2.2250738585072014e-308)
+ )
)
(set_global $hangLimit
(i32.sub
@@ -64,33 +69,28 @@
)
)
)
+ (f64.const 1)
+ )
+ (func $func_5_invoker (; 6 ;) (type $FUNCSIG$v)
(drop
- (i32.atomic.store16 offset=22
- (return)
- (get_local $1)
- )
+ (call $func_5)
+ )
+ (drop
+ (call $func_5)
+ )
+ (drop
+ (call $func_5)
)
)
- (func $func_2 (; 2 ;) (type $FUNCSIG$v)
- (local $0 f64)
- (local $1 f32)
- (local $2 i64)
- (local $3 f64)
- (local $4 f64)
- (local $5 f64)
- (local $6 f32)
- (local $7 i32)
- (local $8 i32)
- (local $9 f64)
- (local $10 f64)
- (local $11 f64)
- (local $12 i64)
+ (func $func_7 (; 7 ;) (param $0 i32) (param $1 i32) (result i64)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
- (return)
+ (return
+ (i64.const -125)
+ )
)
(set_global $hangLimit
(i32.sub
@@ -99,45 +99,16 @@
)
)
)
- (block $label$0
- (set_local $12
- (tee_local $2
- (tee_local $2
- (tee_local $12
- (tee_local $2
- (tee_local $2
- (get_local $12)
- )
- )
- )
- )
- )
- )
- (br_if $label$0
- (i32.eqz
- (i32.const 2004815888)
- )
- )
- )
+ (i64.const -9223372036854775807)
)
- (func $func_3 (; 3 ;) (type $FUNCSIG$jdfiid) (param $0 f64) (param $1 f32) (param $2 i32) (param $3 i32) (param $4 f64) (result i64)
- (local $5 i32)
- (local $6 i64)
- (local $7 f64)
- (local $8 f64)
- (local $9 i64)
- (local $10 f64)
- (local $11 i64)
- (local $12 f32)
- (local $13 i32)
- (local $14 f64)
+ (func $func_8 (; 8 ;) (param $0 f32) (param $1 i32) (result i64)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 6)
+ (i64.const 1872)
)
)
(set_global $hangLimit
@@ -147,29 +118,19 @@
)
)
)
- (block $label$0 (result i64)
- (i64.const 1785357419)
- )
- )
- (func $func_3_invoker (; 4 ;) (type $FUNCSIG$v)
- (drop
- (call $func_3
- (f64.const 8)
- (f32.const 5.044674471569341e-44)
- (i32.const 128)
- (i32.const 65525)
- (f64.const 2147483647)
- )
- )
+ (i64.const 1)
)
- (func $func_5 (; 5 ;) (result f64)
+ (func $func_9 (; 9 ;) (param $0 i64) (result i32)
+ (local $1 i64)
+ (local $2 f32)
+ (local $3 i64)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (f64.const -4611686018427387904)
+ (i32.const 20313)
)
)
(set_global $hangLimit
@@ -179,21 +140,34 @@
)
)
)
- (f64.const -1.1754943508222875e-38)
+ (i32.const -8192)
)
- (func $func_5_invoker (; 6 ;) (type $FUNCSIG$v)
+ (func $func_9_invoker (; 10 ;) (type $FUNCSIG$v)
(drop
- (call $func_5)
+ (call $func_9
+ (i64.const 6780181376769203038)
+ )
+ )
+ (drop
+ (call $func_9
+ (i64.const 939691058929557011)
+ )
)
)
- (func $func_7 (; 7 ;) (param $0 i32) (result i64)
+ (func $func_11 (; 11 ;) (type $FUNCSIG$ijdfd) (param $0 i64) (param $1 f64) (param $2 f32) (param $3 f64) (result i32)
+ (local $4 f32)
+ (local $5 i64)
+ (local $6 f32)
+ (local $7 i64)
+ (local $8 i32)
+ (local $9 i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 0)
+ (get_local $9)
)
)
(set_global $hangLimit
@@ -203,14 +177,14 @@
)
)
)
- (loop $label$0 (result i64)
+ (loop $label$0 (result i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 769)
+ (i32.const -4)
)
)
(set_global $hangLimit
@@ -220,16 +194,426 @@
)
)
)
- (block $label$1 (result i64)
- (nop)
- (loop $label$2 (result i64)
+ (block $label$1 (result i32)
+ (if
+ (i32.eqz
+ (loop $label$2 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -536870912)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (block $label$3
+ (set_local $4
+ (if (result f32)
+ (loop $label$4 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $8)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $9)
+ )
+ (block $label$11 (result f32)
+ (block $label$20
+ (nop)
+ (if
+ (i32.const 69016851)
+ (set_local $0
+ (get_local $5)
+ )
+ (set_local $7
+ (loop $label$21 (result i64)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 128)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i64)
+ (set_local $6
+ (block $label$22 (result f32)
+ (set_local $0
+ (i64.const 32768)
+ )
+ (f32.const 512)
+ )
+ )
+ (br_if $label$21
+ (block $label$23 (result i32)
+ (nop)
+ (get_local $9)
+ )
+ )
+ (i64.const 35325213)
+ )
+ )
+ )
+ )
+ )
+ (f32.const -4294967296)
+ )
+ (block $label$12
+ (set_local $1
+ (tee_local $3
+ (tee_local $1
+ (tee_local $3
+ (tee_local $3
+ (get_local $3)
+ )
+ )
+ )
+ )
+ )
+ (br $label$3)
+ )
+ )
+ )
+ (set_local $6
+ (f32.const -4294967296)
+ )
+ )
+ (br_if $label$2
+ (i32.eqz
+ (i32.const -2147483648)
+ )
+ )
+ (get_local $9)
+ )
+ )
+ )
+ (block $label$13
+ (set_local $4
+ (tee_local $2
+ (if (result f32)
+ (tee_local $8
+ (tee_local $9
+ (i32.const 487671376)
+ )
+ )
+ (loop $label$14 (result f32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 374370334)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (tee_local $4
+ (tee_local $4
+ (tee_local $4
+ (tee_local $2
+ (tee_local $6
+ (f32.const 125437032)
+ )
+ )
+ )
+ )
+ )
+ )
+ (block $label$24
+ (set_local $4
+ (get_local $2)
+ )
+ (br $label$13)
+ )
+ )
+ )
+ )
+ (set_local $7
+ (i64.const -2147483646)
+ )
+ )
+ (block $label$25
+ (loop $label$26
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 21)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block $label$27
+ (set_local $1
+ (tee_local $1
+ (tee_local $1
+ (tee_local $3
+ (tee_local $3
+ (tee_local $1
+ (tee_local $3
+ (tee_local $3
+ (get_local $3)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (loop $label$28
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -32768)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block
+ (set_local $8
+ (get_local $9)
+ )
+ (br_if $label$28
+ (get_local $8)
+ )
+ (call $log-i32
+ (loop $label$29 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 1048576)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (tee_local $0
+ (if
+ (i32.eqz
+ (loop $label$30
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $9)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block $label$31
+ (set_local $4
+ (tee_local $2
+ (tee_local $2
+ (tee_local $4
+ (tee_local $4
+ (tee_local $2
+ (tee_local $6
+ (f32.const 125437032)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (br $label$27)
+ )
+ )
+ )
+ (block $label$33
+ (set_local $7
+ (tee_local $0
+ (tee_local $7
+ (get_local $5)
+ )
+ )
+ )
+ (br $label$27)
+ )
+ (block $label$34
+ (block $label$18
+ (set_local $2
+ (tee_local $4
+ (get_local $4)
+ )
+ )
+ (set_local $9
+ (tee_local $9
+ (get_local $9)
+ )
+ )
+ )
+ (br $label$28)
+ )
+ )
+ )
+ (br_if $label$29
+ (i32.const -83)
+ )
+ (br_if $label$1
+ (i32.const -65535)
+ (i32.eqz
+ (tee_local $9
+ (i32.const 512)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (br_if $label$25
+ (i32.eqz
+ (br_if $label$1
+ (i32.const -8388608)
+ (i32.eqz
+ (i32.const 1798)
+ )
+ )
+ )
+ )
+ )
+ )
+ (br $label$0)
+ )
+ )
+ )
+ (func $func_12 (; 12 ;) (type $FUNCSIG$j) (result i64)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i64.const 6779903213212753417)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block $label$0 (result i64)
+ (nop)
+ (i64.const -81)
+ )
+ )
+ (func $func_12_invoker (; 13 ;) (type $FUNCSIG$v)
+ (drop
+ (call $func_12)
+ )
+ (drop
+ (call $func_12)
+ )
+ (drop
+ (call $func_12)
+ )
+ (drop
+ (call $func_12)
+ )
+ (drop
+ (call $func_12)
+ )
+ )
+ (func $func_14 (; 14 ;) (param $0 f64) (param $1 f32) (param $2 f32) (param $3 i64) (param $4 i32) (result i32)
+ (local $5 i64)
+ (local $6 i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block $label$0 (result i32)
+ (set_local $6
+ (loop $label$1 (result i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const -2048)
+ (i32.const -78)
)
)
(set_global $hangLimit
@@ -239,58 +623,44 @@
)
)
)
- (block (result i64)
- (block $label$3
- (nop)
- (block $label$4
- (nop)
- (nop)
- (nop)
+ (block (result i32)
+ (block $label$2
+ (set_local $3
+ (i64.const 22)
)
- )
- (br_if $label$2
- (i32.eqz
- (if (result i32)
- (i32.const 256)
- (block $label$5 (result i32)
- (br_if $label$2
- (get_local $0)
- )
- (if (result i32)
- (if (result i32)
- (i32.eqz
- (i32.const 1821)
- )
- (block $label$6 (result i32)
- (loop $label$7
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 471139612)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
+ (set_local $2
+ (tee_local $1
+ (tee_local $1
+ (if (result f32)
+ (get_local $6)
+ (loop $label$3 (result f32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
)
- (nop)
)
- (tee_local $0
- (tee_local $0
- (loop $label$8 (result i32)
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block $label$4 (result f32)
+ (set_local $6
+ (tee_local $6
+ (loop $label$5 (result i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 1448499994801557011)
+ (i32.const -32767)
)
)
(set_global $hangLimit
@@ -300,98 +670,127 @@
)
)
)
- (block $label$9 (result i32)
- (set_local $0
- (tee_local $0
- (if (result i32)
- (get_local $0)
- (i32.const -32767)
- (i32.const -96)
- )
+ (block (result i32)
+ (block $label$6
+ (set_local $0
+ (f64.const 18446744073709551615)
+ )
+ (set_local $2
+ (f32.const 1.2250390128955172e-22)
)
)
- (br_if $label$9
- (i32.const 28798)
- (i32.const 7766)
+ (br_if $label$5
+ (i32.eqz
+ (tee_local $4
+ (i32.const 656421170)
+ )
+ )
)
+ (i32.const 1598490719)
)
)
)
)
+ (f32.const -144115188075855872)
)
- (block $label$10 (result i32)
- (br_if $label$0
- (i32.eqz
- (br_if $label$10
- (br_if $label$10
- (tee_local $0
- (tee_local $0
- (i32.const -32768)
- )
- )
- (if (result i32)
- (i32.eqz
- (get_local $0)
- )
- (br_if $label$5
- (loop $label$13 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 4611686018427387904)
- )
+ )
+ (block $label$7 (result f32)
+ (drop
+ (get_local $3)
+ )
+ (loop $label$8 (result f32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result f32)
+ (tee_local $6
+ (block $label$9
+ (set_local $4
+ (tee_local $4
+ (loop $label$10 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
)
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
+ (return
+ (get_local $6)
)
)
- (i32.const -127)
- )
- (loop $label$12 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 1088542939510032975)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
)
)
- (block (result i32)
- (nop)
- (br_if $label$12
- (i32.eqz
- (i32.const -2147483647)
- )
- )
- (i32.const 370416410)
+ )
+ (block (result i32)
+ (set_local $6
+ (get_local $6)
+ )
+ (br_if $label$10
+ (get_local $4)
)
+ (get_local $6)
)
)
- (block $label$14 (result i32)
- (nop)
- (block $label$15 (result i32)
- (loop $label$16
+ )
+ )
+ (return
+ (get_local $4)
+ )
+ )
+ )
+ (br_if $label$8
+ (br_if $label$0
+ (br_if $label$0
+ (i32.const -2147483648)
+ (i32.eqz
+ (get_local $4)
+ )
+ )
+ (i32.eqz
+ (br_if $label$0
+ (if (result i32)
+ (block $label$11 (result i32)
+ (nop)
+ (i32.const 67108864)
+ )
+ (block $label$12
+ (set_local $5
+ (i64.const 86)
+ )
+ (return
+ (i32.const 319952130)
+ )
+ )
+ (block $label$13 (result i32)
+ (set_local $1
+ (tee_local $1
+ (get_local $1)
+ )
+ )
+ (loop $label$14 (result i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 539505204)
+ (get_local $4)
)
)
(set_global $hangLimit
@@ -401,105 +800,206 @@
)
)
)
- (br_if $label$2
+ (get_local $4)
+ )
+ )
+ )
+ (i32.eqz
+ (br_if $label$0
+ (i32.const 0)
+ (i32.eqz
+ (br_if $label$0
+ (i32.const 0)
(i32.eqz
- (i32.const -127)
+ (i32.const -131072)
)
)
)
- (get_local $0)
)
)
)
)
- (if (result i32)
- (br_if $label$5
- (i32.const 18)
- (tee_local $0
- (br_if $label$10
- (i32.const 843467308)
- (i32.eqz
- (get_local $0)
- )
- )
- )
+ )
+ )
+ (get_local $2)
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ )
+ (br_if $label$1
+ (i32.eqz
+ (if (result i32)
+ (i32.eqz
+ (get_local $6)
+ )
+ (loop $label$15 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (block $label$16
+ (loop $label$17
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (call $log-i64
+ (loop $label$18 (result i64)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
)
- (block $label$11
- (set_local $0
- (tee_local $0
- (i32.const 64)
- )
- )
- (br $label$2)
+ (return
+ (i32.const 5379960)
)
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (get_local $0)
- )
- )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
)
)
)
- )
- )
- (tee_local $0
- (br_if $label$5
- (br_if $label$5
- (get_local $0)
- (loop $label$22 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
+ (block (result i64)
+ (block $label$19
+ (if
+ (i32.const -65535)
+ (block $label$20
+ (set_local $6
+ (loop $label$21 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 8388608)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (call $log-f64
+ (get_local $0)
+ )
+ (br_if $label$21
+ (loop $label$22 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -18)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -536870912)
+ )
+ )
+ (tee_local $6
+ (tee_local $6
+ (i32.const 7937)
+ )
+ )
+ )
+ )
)
- (return
- (i64.const -65535)
+ (call $log-f64
+ (block $label$23 (result f64)
+ (set_local $3
+ (get_local $5)
+ )
+ (br_if $label$23
+ (get_local $0)
+ (i32.eqz
+ (i32.load offset=4 align=1
+ (i32.and
+ (i32.const 2071622516)
+ (i32.const 15)
+ )
+ )
+ )
+ )
+ )
)
)
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
+ (set_local $2
+ (f32.const 2097152)
)
)
- (block (result i32)
- (block $label$23
- (br_if $label$0
- (i32.eqz
- (get_local $0)
- )
- )
- (br_if $label$23
- (i32.eqz
- (block $label$24 (result i32)
- (nop)
- (i32.const 67)
- )
+ (br_if $label$17
+ (i32.eqz
+ (block $label$24
+ (set_local $3
+ (get_local $3)
)
+ (br $label$16)
)
)
- (br_if $label$22
- (i32.eqz
- (br_if $label$5
- (tee_local $0
- (i32.const -512)
- )
+ )
+ )
+ (br_if $label$18
+ (i32.eqz
+ (loop $label$25 (result i32)
+ (block
+ (if
(i32.eqz
- (get_local $0)
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const 678827100)
)
)
- )
- )
- (if (result i32)
- (i32.eqz
- (block $label$25 (result i32)
- (nop)
- (get_local $0)
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
)
)
- (block $label$26
+ (block $label$26 (result i32)
(loop $label$27
(block
(if
@@ -507,7 +1007,7 @@
(get_global $hangLimit)
)
(return
- (i64.const 35994423)
+ (i32.const 421033554)
)
)
(set_global $hangLimit
@@ -517,67 +1017,173 @@
)
)
)
- (block
- (nop)
- (br_if $label$27
- (i32.eqz
- (i32.const 6918)
- )
+ (block $label$28
+ (block $label$29
+ (nop)
+ (nop)
+ )
+ (set_local $0
+ (get_local $0)
)
- (nop)
)
)
- (br $label$0)
- )
- (tee_local $0
- (tee_local $0
- (i32.const -32768)
+ (if (result i32)
+ (unreachable.atomic.rmw?.xor
+ (i32.and
+ (loop $label$30 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $6)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (set_local $1
+ (f32.const 724134784)
+ )
+ (br_if $label$30
+ (i32.const 32768)
+ )
+ (if (result i32)
+ (i32.eqz
+ (if (result i32)
+ (i32.eqz
+ (i32.const -2147483648)
+ )
+ (tee_local $4
+ (i32.const -16384)
+ )
+ (tee_local $6
+ (i32.const -4)
+ )
+ )
+ )
+ (get_local $4)
+ (i32.const 7633019)
+ )
+ )
+ )
+ (i32.const 15)
+ )
+ (block $label$31
+ (set_local $0
+ (f64.const 1.4014461213526112e-292)
+ )
+ (br $label$1)
+ )
+ )
+ (block $label$32 (result i32)
+ (call $log-i32
+ (loop $label$33 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -54)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (i32.const -16777216)
+ )
+ )
+ (get_local $6)
+ )
+ (block $label$34 (result i32)
+ (set_local $0
+ (f64.const 2305843009213693952)
+ )
+ (i32.const 90)
+ )
)
)
)
)
)
+ (get_local $3)
)
- (i32.eqz
- (tee_local $0
- (if (result i32)
- (i32.eqz
- (if (result i32)
- (i32.eqz
- (loop $label$17 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const -62)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
+ )
+ )
+ )
+ (set_local $3
+ (i64.const 17592186044416)
+ )
+ )
+ (br_if $label$15
+ (tee_local $6
+ (loop $label$35 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -4)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (block (result i32)
+ (block $label$36
+ (set_local $6
+ (br_if $label$0
+ (tee_local $4
+ (loop $label$39 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
)
- (block (result i32)
- (nop)
- (br_if $label$17
- (get_local $0)
- )
- (get_local $0)
+ (return
+ (i32.const -2048)
)
)
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (tee_local $6
+ (tee_local $6
+ (i32.const -32768)
+ )
)
- (loop $label$18 (result i32)
+ )
+ )
+ (i32.eqz
+ (br_if $label$0
+ (loop $label$37 (result i32)
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const -9223372036854775806)
+ (get_local $6)
)
)
(set_global $hangLimit
@@ -587,120 +1193,60 @@
)
)
)
- (i32.const 255)
- )
- (block $label$19
- (call_indirect (type $FUNCSIG$v)
- (i32.const 0)
- )
- (return
- (i64.const 65535)
+ (block $label$38 (result i32)
+ (set_local $4
+ (i32.const -128)
+ )
+ (tee_local $6
+ (br_if $label$0
+ (i32.const -12)
+ (i32.eqz
+ (get_local $4)
+ )
+ )
+ )
)
)
- )
- )
- (i32.const -4)
- (block $label$20 (result i32)
- (nop)
- (block $label$21 (result i32)
- (set_local $0
- (get_local $0)
- )
- (tee_local $0
- (get_local $0)
- )
+ (get_local $4)
)
)
)
)
+ (set_local $1
+ (f32.const -2147483648)
+ )
)
- )
- )
- )
- )
- (block $label$28 (result i32)
- (nop)
- (get_local $0)
- )
- (tee_local $0
- (i32.const 508566559)
- )
- )
- )
- (block $label$29 (result i32)
- (set_local $0
- (loop $label$30 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const -9223372036854775808)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block (result i32)
- (block $label$31
- (nop)
- (nop)
- )
- (br_if $label$30
- (i32.eqz
- (block $label$32
- (if
- (loop $label$33 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 549755813888)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block (result i32)
- (block $label$34
- (nop)
- (set_local $0
- (call $func_0)
- )
- )
- (br_if $label$33
- (i32.eqz
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (i32.const -82)
+ (br_if $label$35
+ (if (result i32)
+ (i32.eqz
+ (block $label$40 (result i32)
+ (tee_local $3
+ (loop $label$41
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $4)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
)
)
)
- )
- )
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (loop $label$35 (result i32)
+ (block $label$42
+ (loop $label$43
(block
(if
(i32.eqz
(get_global $hangLimit)
)
(return
- (i64.const 107)
+ (i32.const -76)
)
)
(set_global $hangLimit
@@ -710,411 +1256,159 @@
)
)
)
- (get_local $0)
+ (block
+ (set_local $6
+ (loop $label$44 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (get_local $4)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
+ )
+ (get_local $6)
+ )
+ )
+ (br_if $label$43
+ (i32.eqz
+ (i32.const 33554432)
+ )
+ )
+ (block $label$45
+ (block $label$46
+ (set_local $5
+ (i64.const 262144)
+ )
+ )
+ (set_local $3
+ (get_local $5)
+ )
+ )
+ )
)
+ (br $label$35)
)
)
)
+ (tee_local $6
+ (tee_local $4
+ (i32.const -33554432)
+ )
+ )
)
)
- (block $label$36
- (nop)
- (tee_local $0
- (loop $label$37
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 1465604153)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block $label$38
- (if
- (i32.eqz
- (get_local $0)
- )
- (block $label$39
- (nop)
- (nop)
- )
- (block $label$40
- (nop)
- (set_local $0
- (i32.const 1728316281)
- )
- )
- )
- (br $label$30)
+ (block $label$47 (result i32)
+ (set_local $2
+ (get_local $1)
+ )
+ (tee_local $4
+ (tee_local $6
+ (tee_local $6
+ (i32.const -2147483648)
)
)
)
)
- (nop)
- )
- (br $label$0)
- )
- )
- )
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (tee_local $0
- (loop $label$41 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 8)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
+ (block $label$48 (result i32)
+ (br_if $label$35
+ (i32.eqz
+ (select
+ (loop $label$50 (result i32)
+ (block
+ (if
+ (i32.eqz
+ (get_global $hangLimit)
+ )
+ (return
+ (i32.const -74)
+ )
+ )
+ (set_global $hangLimit
+ (i32.sub
+ (get_global $hangLimit)
+ (i32.const 1)
+ )
+ )
)
- )
- )
- (block (result i32)
- (set_local $0
- (tee_local $0
- (i32.const 0)
+ (block (result i32)
+ (if
+ (tee_local $6
+ (i32.const 12081)
+ )
+ (set_local $6
+ (get_local $6)
+ )
+ (set_local $4
+ (i32.const 8)
+ )
+ )
+ (br_if $label$50
+ (i32.eqz
+ (if (result i32)
+ (i32.eqz
+ (br_if $label$48
+ (i32.const 85)
+ (i32.const 289932813)
+ )
+ )
+ (get_local $6)
+ (get_local $4)
+ )
+ )
+ )
+ (get_local $6)
)
)
- (br_if $label$41
- (tee_local $0
+ (i32.const -2147483647)
+ (block $label$49
+ (set_local $0
(get_local $0)
)
+ (br $label$1)
)
- (get_local $0)
)
)
)
+ (get_local $4)
)
)
)
+ (get_local $6)
)
)
)
)
- )
- (loop $label$42 (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 0)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block $label$43 (result i32)
- (nop)
- (tee_local $0
- (i32.const 3340)
- )
- )
- )
- )
- )
- )
- )
- (i64.const -4)
- )
- )
- )
- )
- )
- (func $func_7_invoker (; 8 ;) (type $FUNCSIG$v)
- (drop
- (call $func_7
- (i32.const 0)
- )
- )
- (drop
- (call $func_7
- (i32.const -255)
- )
- )
- )
- (func $func_9 (; 9 ;) (result f32)
- (local $0 f64)
- (local $1 i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (f32.const 4294967296)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (f32.const 68719476736)
- )
- (func $func_10 (; 10 ;) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (param $4 i64)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return)
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (set_local $3
- (f64.const -4294967295)
- )
- )
- (func $func_10_invoker (; 11 ;) (type $FUNCSIG$v)
- (call $func_10
- (i32.const 1162756672)
- (i64.const 437523221)
- (f32.const 520298272)
- (f64.const 3402823466385288598117041e14)
- (i64.const 8249322886954774645)
- )
- (call $func_10
- (i32.const 1448498774)
- (i64.const 9223372036854775807)
- (f32.const 514)
- (f64.const -3402823466385288598117041e14)
- (i64.const 1152921504606846976)
- )
- (call $func_10
- (i32.const 256)
- (i64.const -4)
- (f32.const -1)
- (f64.const 3402823466385288598117041e14)
- (i64.const 9187062989043925010)
- )
- )
- (func $func_12 (; 12 ;) (result f64)
- (local $0 f64)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (get_local $0)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block $label$0 (result f64)
- (set_local $0
- (f64.const -3402823466385288598117041e14)
- )
- (nop)
- (tee_local $0
- (tee_local $0
- (f64.const -1797693134862315708145274e284)
- )
- )
- )
- )
- (func $func_13 (; 13 ;) (type $FUNCSIG$v)
- (local $0 f64)
- (local $1 f32)
- (local $2 i64)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return)
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (set_local $0
- (f64.const -18446744073709551615)
- )
- )
- (func $func_14 (; 14 ;) (result i32)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i32.const 22043)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (i32.const -1073741824)
- )
- (func $func_15 (; 15 ;) (result i64)
- (block
- (if
- (i32.eqz
- (get_global $hangLimit)
- )
- (return
- (i64.const 1231244158900898823)
- )
- )
- (set_global $hangLimit
- (i32.sub
- (get_global $hangLimit)
- (i32.const 1)
- )
- )
- )
- (block $label$0
- (nop)
- (i32.trunc_s/f32
- (f64.store offset=1 align=2
- (i32.and
- (i32.const -127)
- (i32.const 15)
- )
- (i32.store offset=2 align=2
- (if
- (i32.const -32768)
- (block $label$24
- (nop)
- (if
- (i32.const -4)
- (block $label$25
- (call $func_3_invoker)
- (if
- (i32.eqz
- (if
- (i32.const 386274323)
- (block $label$26
- (if
- (i32.const 403838992)
- (block $label$27
- (nop)
- (br_if $label$27
- (i32.eqz
- (i32.const -18)
- )
- )
- )
- (block $label$28
- (nop)
- (block $label$29
- (nop)
- (nop)
- )
- )
- )
- (return
- (i64.const 8995)
- )
- )
- (block $label$30
- (nop)
- (return
- (i64.const 6287390439797901652)
- )
- )
- )
- )
- (block $label$31
- (nop)
- (return
- (i64.const -9223372036854775807)
- )
- )
- (return
- (i64.const -144115188075855872)
- )
+ (i32.const -65535)
)
)
- (block $label$32
- (block $label$33
- (nop)
- (nop)
- )
- (return
- (i64.const -2305843009213693952)
- )
- )
- )
- )
- (block $label$34
- (if
- (i32.const 0)
- (nop)
- (block $label$35
- (if
- (i32.const 50)
- (block $label$36
- (nop)
- )
- (block $label$37
- (nop)
- )
- )
- (nop)
+ (block $label$51 (result i32)
+ (i32.const 504305950)
)
)
- (return
- (i64.const -89)
- )
)
)
- (i32.const -4096)
+ (get_local $6)
)
)
)
+ (get_local $4)
)
)
- (func $hangLimitInitializer (; 16 ;)
+ (func $hangLimitInitializer (; 15 ;)
(set_global $hangLimit
(i32.const 10)
)
)
- (func $deNan32 (; 17 ;) (param $0 f32) (result f32)
+ (func $deNan32 (; 16 ;) (param $0 f32) (result f32)
(if (result f32)
(f32.eq
(get_local $0)
@@ -1124,7 +1418,7 @@
(f32.const 0)
)
)
- (func $deNan64 (; 18 ;) (param $0 f64) (result f64)
+ (func $deNan64 (; 17 ;) (param $0 f64) (result f64)
(if (result f64)
(f64.eq
(get_local $0)
diff --git a/test/reduce/imports.wast.txt b/test/reduce/imports.wast.txt
index 220bf3b7e..6807ffd26 100644
--- a/test/reduce/imports.wast.txt
+++ b/test/reduce/imports.wast.txt
@@ -2,5 +2,10 @@
(type $0 (func))
(type $1 (func (result i32)))
(import "env" "func" (func $fimport$0))
+ (export "x" (func $0))
+ (func $0 (; 1 ;) (type $1) (result i32)
+ (call $fimport$0)
+ (i32.const 5678)
+ )
)