diff options
Diffstat (limited to 'test/lit/fuzz-lattices.test')
-rw-r--r-- | test/lit/fuzz-lattices.test | 1305 |
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: |