summaryrefslogtreecommitdiff
path: root/test/lit/fuzz-lattices.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/fuzz-lattices.test')
-rw-r--r--test/lit/fuzz-lattices.test1305
1 files changed, 1305 insertions, 0 deletions
diff --git a/test/lit/fuzz-lattices.test b/test/lit/fuzz-lattices.test
new file mode 100644
index 000000000..361c46930
--- /dev/null
+++ b/test/lit/fuzz-lattices.test
@@ -0,0 +1,1305 @@
+;; RUN: wasm-fuzz-lattices -v --seed=0 | filecheck %s
+
+;; CHECK: Running with seed 0
+;; CHECK-NEXT: Generated test module:
+;; CHECK-NEXT: (module
+;; CHECK-NEXT: (type $none_=>_none (func))
+;; CHECK-NEXT: (type $none_=>_i32 (func (result i32)))
+;; CHECK-NEXT: (type $none_=>_i64 (func (result i64)))
+;; CHECK-NEXT: (type $i32_=>_none (func (param i32)))
+;; CHECK-NEXT: (type $i64_=>_none (func (param i64)))
+;; CHECK-NEXT: (type $f32_=>_none (func (param f32)))
+;; CHECK-NEXT: (type $f64_=>_none (func (param f64)))
+;; CHECK-NEXT: (type $i32_=>_f32 (func (param i32) (result f32)))
+;; CHECK-NEXT: (type $i32_f32_f64_f32_=>_i32 (func (param i32 f32 f64 f32) (result i32)))
+;; CHECK-NEXT: (import "fuzzing-support" "log-i32" (func $log-i32 (param i32)))
+;; CHECK-NEXT: (import "fuzzing-support" "log-i64" (func $log-i64 (param i64)))
+;; CHECK-NEXT: (import "fuzzing-support" "log-f32" (func $log-f32 (param f32)))
+;; CHECK-NEXT: (import "fuzzing-support" "log-f64" (func $log-f64 (param f64)))
+;; CHECK-NEXT: (global $global$ i64 (i64.const -13))
+;; CHECK-NEXT: (global $global$_1 i64 (i64.const -281474976710655))
+;; CHECK-NEXT: (global $global$_2 (mut i32) (i32.const 32767))
+;; CHECK-NEXT: (global $global$_3 i64 (i64.const 65534))
+;; CHECK-NEXT: (global $global$_4 f32 (f32.const -0.484000027179718))
+;; CHECK-NEXT: (global $global$_5 (mut f32) (f32.const 3402823466385288598117041e14))
+;; CHECK-NEXT: (global $global$_6 (mut f64) (f64.const 392913192))
+;; CHECK-NEXT: (global $global$_7 i32 (i32.const -1))
+;; CHECK-NEXT: (global $global$_8 i32 (i32.const -7151))
+;; CHECK-NEXT: (global $global$_9 f64 (f64.const 64257))
+;; CHECK-NEXT: (global $global$_10 i32 (i32.const -511))
+;; CHECK-NEXT: (global $global$_11 (mut i32) (i32.const -2))
+;; CHECK-NEXT: (global $global$_12 (mut i32) (i32.const -101))
+;; CHECK-NEXT: (global $global$_13 (mut f64) (f64.const -17592186044415.012))
+;; CHECK-NEXT: (global $global$_14 i32 (i32.const 1))
+;; CHECK-NEXT: (global $hangLimit (mut i32) (i32.const 100))
+;; CHECK-NEXT: (memory $0 16 17)
+;; CHECK-NEXT: (data $0 (i32.const 0) "\00\00 ")
+;; CHECK-NEXT: (table $fuzzing_table 0 funcref)
+;; CHECK-NEXT: (elem $elem$ (i32.const 0))
+;; CHECK-NEXT: (export "func" (func $func))
+;; CHECK-NEXT: (export "func_invoker" (func $func_invoker))
+;; CHECK-NEXT: (export "func_6" (func $func_6))
+;; CHECK-NEXT: (export "func_6_invoker" (func $func_6_invoker))
+;; CHECK-NEXT: (export "func_8_invoker" (func $func_8_invoker))
+;; CHECK-NEXT: (export "func_10_invoker" (func $func_10_invoker))
+;; CHECK-NEXT: (export "hashMemory" (func $hashMemory))
+;; CHECK-NEXT: (export "memory" (memory $0))
+;; CHECK-NEXT: (func $func (param $0 i32) (result f32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f32.sub
+;; CHECK-NEXT: (f32.load offset=4 align=1
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.const -26294)
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (loop $label$12 (result f32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$13 (result f32)
+;; CHECK-NEXT: (block $label$14
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (f64.ge
+;; CHECK-NEXT: (loop $label$15 (result f64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block (result f64)
+;; CHECK-NEXT: (block $label$16
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$15
+;; CHECK-NEXT: (select
+;; CHECK-NEXT: (i32.const -4)
+;; CHECK-NEXT: (block $label$18 (result i32)
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (if (result i32)
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (global.get $global$_14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_6)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f64.const -nan:0xfffffffffff9b)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$14
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (i32.const -112)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (if (result f32)
+;; CHECK-NEXT: (loop $label$24 (result i32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block (result i32)
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$24
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$25 (result i32)
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (block $label$26
+;; CHECK-NEXT: (call $log-f32
+;; CHECK-NEXT: (br_if $label$13
+;; CHECK-NEXT: (f32.const -18446744073709551615)
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (loop $label$27 (result i32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block (result i32)
+;; CHECK-NEXT: (block $label$28
+;; CHECK-NEXT: (call $log-f64
+;; CHECK-NEXT: (if (result f64)
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (i32.const 7)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f64.const -64)
+;; CHECK-NEXT: (f64.const -nan:0xfffffffffff91)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i64
+;; CHECK-NEXT: (i64.shr_s
+;; CHECK-NEXT: (i64.const -128)
+;; CHECK-NEXT: (i64.add
+;; CHECK-NEXT: (i64.const -15324)
+;; CHECK-NEXT: (select
+;; CHECK-NEXT: (i64.load16_s offset=4 align=1
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.load offset=4 align=2
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (block $label$89 (result i32)
+;; CHECK-NEXT: (f64.store offset=22 align=1
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.const -72)
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_6)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$89
+;; CHECK-NEXT: (br_if $label$89
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (i32.const 23873)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i64.const 5)
+;; CHECK-NEXT: (if (result i32)
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (loop $label$74
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$75
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$76
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const -nan:0x7fff9f)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$77 (result i32)
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: (global.set $global$_6
+;; CHECK-NEXT: (f64.const -3402823466385288598117041e14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_10)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$78 (result i32)
+;; CHECK-NEXT: (f32.store offset=22 align=1
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.load offset=22
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (loop $label$79 (result i32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$80 (result i32)
+;; CHECK-NEXT: (call $log-f64
+;; CHECK-NEXT: (loop $label$81
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$82
+;; CHECK-NEXT: (br_if $label$81
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const 14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$83
+;; CHECK-NEXT: (loop $label$84
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (block $label$85
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (block $label$86
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$87
+;; CHECK-NEXT: (call $log-i64
+;; CHECK-NEXT: (i64.const 12616)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const 166)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (i32.load8_u offset=4
+;; CHECK-NEXT: (if (result i32)
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const -2147483647)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$84
+;; CHECK-NEXT: (i32.const -1048575)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const 4294967296)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$88
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const 64541)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f32.convert_i32_u
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$27
+;; CHECK-NEXT: (global.get $global$_2)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (i32.load8_s offset=4
+;; CHECK-NEXT: (i32.const -91)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.store16 offset=22
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.gt_u
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (i32.load offset=2
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (if (result i32)
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (f32.const -nan:0x7fffd5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_11)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$29 (result f32)
+;; CHECK-NEXT: (call $log-f32
+;; CHECK-NEXT: (call $func
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (f32.const 13)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$30
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (i32.trunc_f64_s
+;; CHECK-NEXT: (f64.reinterpret_i64
+;; CHECK-NEXT: (i64.const -2049)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br $label$12)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_invoker
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func
+;; CHECK-NEXT: (i32.const 2)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_6
+;; CHECK-NEXT: (local $0 f64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$0
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (i32.const 4)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_6_invoker
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (call $func_6)
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_8 (result i32)
+;; CHECK-NEXT: (local $0 i64)
+;; CHECK-NEXT: (local $1 f32)
+;; CHECK-NEXT: (local $2 i32)
+;; CHECK-NEXT: (local $3 i64)
+;; CHECK-NEXT: (local $4 f32)
+;; CHECK-NEXT: (local $5 i64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$0 (result i32)
+;; CHECK-NEXT: (local.set $3
+;; CHECK-NEXT: (loop $label$1 (result i64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block (result i64)
+;; CHECK-NEXT: (block $label$2
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$1
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (i32.reinterpret_f32
+;; CHECK-NEXT: (f32.const -nan:0x7fc223)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i64.trunc_f32_u
+;; CHECK-NEXT: (global.get $global$_4)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.get $global$_14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_8_invoker
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func_8)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_10 (result i64)
+;; CHECK-NEXT: (local $0 f64)
+;; CHECK-NEXT: (local $1 f64)
+;; CHECK-NEXT: (local $2 f64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$0 (result i64)
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: (nop)
+;; CHECK-NEXT: (i64.load32_s offset=22
+;; CHECK-NEXT: (global.get $global$_7)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_10_invoker
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func_10)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func_10)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (call $hashMemory)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func_10)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (call $func_10)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_12 (result i64)
+;; CHECK-NEXT: (local $0 i64)
+;; CHECK-NEXT: (local $1 f64)
+;; CHECK-NEXT: (local $2 i64)
+;; CHECK-NEXT: (local $3 f32)
+;; CHECK-NEXT: (local $4 i64)
+;; CHECK-NEXT: (local $5 i64)
+;; CHECK-NEXT: (local $6 i64)
+;; CHECK-NEXT: (local $7 i64)
+;; CHECK-NEXT: (local $8 i32)
+;; CHECK-NEXT: (local $9 i32)
+;; CHECK-NEXT: (local $10 f32)
+;; CHECK-NEXT: (local $11 i64)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$1
+;; CHECK-NEXT: (drop
+;; CHECK-NEXT: (i32.load16_s offset=22
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (local.get $9)
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (i64.const 3)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $func_13 (param $0 i32) (param $1 f32) (param $2 f64) (param $3 f32) (result i32)
+;; CHECK-NEXT: (local $4 i32)
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$0 (result i32)
+;; CHECK-NEXT: (loop $label$1
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (block $label$2
+;; CHECK-NEXT: (global.set $global$_13
+;; CHECK-NEXT: (f64.load offset=3
+;; CHECK-NEXT: (br_if $label$0
+;; CHECK-NEXT: (i32.load offset=22 align=1
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=3
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.load offset=22 align=1
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.trunc_f32_s
+;; CHECK-NEXT: (local.get $3)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $2
+;; CHECK-NEXT: (f64.nearest
+;; CHECK-NEXT: (f64.const -3402823466385288598117041e14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$1
+;; CHECK-NEXT: (i32.le_u
+;; CHECK-NEXT: (select
+;; CHECK-NEXT: (block $label$32
+;; CHECK-NEXT: (loop $label$33
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (call $log-i32
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (br_if $label$33
+;; CHECK-NEXT: (local.tee $0
+;; CHECK-NEXT: (global.get $global$_11)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $global$_13
+;; CHECK-NEXT: (f64.nearest
+;; CHECK-NEXT: (f64.const -3402823466385288598117041e14)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (i32.const 2147483646)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load offset=4
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (i32.wrap_i64
+;; CHECK-NEXT: (i64.load32_s offset=4 align=2
+;; CHECK-NEXT: (i32.and
+;; CHECK-NEXT: (call $func_8)
+;; CHECK-NEXT: (i32.const 15)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (loop $label$14
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (if
+;; CHECK-NEXT: (i32.eqz
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.const 100)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (unreachable)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (global.set $hangLimit
+;; CHECK-NEXT: (i32.sub
+;; CHECK-NEXT: (global.get $hangLimit)
+;; CHECK-NEXT: (i32.const 1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (block $label$15
+;; CHECK-NEXT: (local.set $1
+;; CHECK-NEXT: (local.get $1)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $4)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $4)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $2
+;; CHECK-NEXT: (f64.const -nan:0xfffffffffffb2)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (return
+;; CHECK-NEXT: (i32.const -1217019)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (func $hashMemory (result i32)
+;; CHECK-NEXT: (local $0 i32)
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.const 5381)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=1
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=2
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=3
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=4
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=5
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=6
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=7
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=8
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=9
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=10
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=11
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=12
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=13
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=14
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.set $0
+;; CHECK-NEXT: (i32.xor
+;; CHECK-NEXT: (i32.add
+;; CHECK-NEXT: (i32.shl
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: (i32.const 5)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (i32.load8_u offset=15
+;; CHECK-NEXT: (i32.const 0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: (local.get $0)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 4234964801256893051
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: 1111000011,
+;; CHECK-NEXT: 0110011101,
+;; CHECK-NEXT: 0010001110
+;; CHECK-NEXT: for func to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 4577570485573586799
+;; CHECK-NEXT: Generated FiniteIntPowersetLattice elements:
+;; CHECK-NEXT: ,
+;; CHECK-NEXT: ,
+;; CHECK-NEXT:
+;; CHECK-NEXT: for func_invoker to test LivenessTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 8191301589003135276
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: 0,
+;; CHECK-NEXT: 1,
+;; CHECK-NEXT: 1
+;; CHECK-NEXT: for func_6 to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 8068299453651594774
+;; CHECK-NEXT: Generated FiniteIntPowersetLattice elements:
+;; CHECK-NEXT: ,
+;; CHECK-NEXT: ,
+;; CHECK-NEXT:
+;; CHECK-NEXT: for func_6_invoker to test LivenessTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 5852178751023674337
+;; CHECK-NEXT: Generated FiniteIntPowersetLattice elements:
+;; CHECK-NEXT: 111111,
+;; CHECK-NEXT: 000100,
+;; CHECK-NEXT: 010000
+;; CHECK-NEXT: for func_8 to test LivenessTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 13832862600605363478
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: ,
+;; CHECK-NEXT: ,
+;; CHECK-NEXT:
+;; CHECK-NEXT: for func_8_invoker to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 7970088265179676333
+;; CHECK-NEXT: Generated FiniteIntPowersetLattice elements:
+;; CHECK-NEXT: 011,
+;; CHECK-NEXT: 011,
+;; CHECK-NEXT: 000
+;; CHECK-NEXT: for func_10 to test LivenessTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 14582942952639200251
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: ,
+;; CHECK-NEXT: ,
+;; CHECK-NEXT:
+;; CHECK-NEXT: for func_10_invoker to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 16331556144677973625
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: 001000110000,
+;; CHECK-NEXT: 011010100000,
+;; CHECK-NEXT: 001011001101
+;; CHECK-NEXT: for func_12 to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 6783688792201211800
+;; CHECK-NEXT: Generated FiniteIntPowersetLattice elements:
+;; CHECK-NEXT: 00001,
+;; CHECK-NEXT: 00011,
+;; CHECK-NEXT: 10000
+;; CHECK-NEXT: for func_13 to test LivenessTransferFunction.
+;; CHECK-NEXT:
+;; CHECK-NEXT: Using lattice element seed 15457352654905208821
+;; CHECK-NEXT: Generated FinitePowersetLattice<LocalSet*> elements:
+;; CHECK-NEXT: 111000100001010101,
+;; CHECK-NEXT: 001110111010000110,
+;; CHECK-NEXT: 111010111111110110
+;; CHECK-NEXT: for hashMemory to test ReachingDefinitionsTransferFunction.
+;; CHECK-NEXT: