| (module |
| (type $0 (func (param i32 i64))) |
| (type $FUNCSIG$v (func)) |
| (type $FUNCSIG$viidd (func (param i32 i32 f64 f64))) |
| (type $FUNCSIG$i (func (result i32))) |
| (type $FUNCSIG$ii (func (param i32) (result i32))) |
| (type $FUNCSIG$vii (func (param i32 i32))) |
| (type $FUNCSIG$vi (func (param i32))) |
| (type $FUNCSIG$iii (func (param i32 i32) (result i32))) |
| (type $FUNCSIG$jj (func (param i64) (result i64))) |
| (type $FUNCSIG$j (func (result i64))) |
| (type $FUNCSIG$vijfd (func (param i32 i64 f32 f64))) |
| (type $FUNCSIG$vijf (func (param i32 i64 f32))) |
| (type $FUNCSIG$vijdi (func (param i32 i64 f64 i32))) |
| (type $FUNCSIG$d (func (result f64))) |
| (memory $0 0) |
| (export "load-off-2" (func $load-off-2)) |
| (func $f (; 0 ;) (type $0) (param $i1 i32) (param $i2 i64) |
| (if |
| (i32.eqz |
| (local.get $i1) |
| ) |
| (drop |
| (i32.const 10) |
| ) |
| ) |
| (if |
| (local.get $i1) |
| (drop |
| (i32.const 12) |
| ) |
| (drop |
| (i32.const 11) |
| ) |
| ) |
| (if |
| (i64.eqz |
| (local.get $i2) |
| ) |
| (drop |
| (i32.const 11) |
| ) |
| (drop |
| (i32.const 12) |
| ) |
| ) |
| (drop |
| (i32.le_s |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.lt_s |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.ge_s |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.gt_s |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.le_u |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.lt_u |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.ge_u |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.gt_u |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f32.gt |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f32.ge |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f32.lt |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f32.le |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f64.gt |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f64.ge |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f64.lt |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (f64.le |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (f32.ne |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| (drop |
| (f32.eq |
| (f32.const 1) |
| (f32.const 2) |
| ) |
| ) |
| (drop |
| (f64.ne |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| (drop |
| (f64.eq |
| (f64.const 1) |
| (f64.const 2) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const 100) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.const 0) |
| (i32.const 100) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (i64.eqz |
| (i64.const 100) |
| ) |
| ) |
| (drop |
| (i64.eq |
| (i64.const 0) |
| (i64.const 100) |
| ) |
| ) |
| (drop |
| (i64.eqz |
| (i64.const 0) |
| ) |
| ) |
| (if |
| (i32.const 123) |
| (nop) |
| ) |
| (drop |
| (select |
| (i32.const 102) |
| (i32.const 101) |
| (local.get $i1) |
| ) |
| ) |
| (drop |
| (select |
| (local.tee $i1 |
| (i32.const 103) |
| ) |
| (local.tee $i1 |
| (i32.const 104) |
| ) |
| (i32.eqz |
| (local.get $i1) |
| ) |
| ) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| ) |
| (func $load-store (; 1 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.load8_u |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (i32.load8_u |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.load8_s |
| (i32.const 2) |
| ) |
| (i32.const 254) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.load8_u |
| (i32.const 3) |
| ) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.load16_u |
| (i32.const 4) |
| ) |
| ) |
| (drop |
| (i32.load16_u |
| (i32.const 5) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.load16_s |
| (i32.const 6) |
| ) |
| (i32.const 65534) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.load16_u |
| (i32.const 7) |
| ) |
| (i32.const 1) |
| ) |
| ) |
| (i32.store8 |
| (i32.const 8) |
| (i32.const -1) |
| ) |
| (i32.store8 |
| (i32.const 9) |
| (i32.and |
| (i32.const -2) |
| (i32.const 254) |
| ) |
| ) |
| (i32.store16 |
| (i32.const 10) |
| (i32.const -3) |
| ) |
| (i32.store16 |
| (i32.const 11) |
| (i32.and |
| (i32.const -4) |
| (i32.const 65534) |
| ) |
| ) |
| (i64.store8 |
| (i32.const 11) |
| (i64.const 1) |
| ) |
| (i64.store16 |
| (i32.const 11) |
| (i64.const 2) |
| ) |
| (i64.store32 |
| (i32.const 11) |
| (i64.const 3) |
| ) |
| ) |
| (func $and-neg1 (; 2 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.const 100) |
| ) |
| (drop |
| (i32.and |
| (i32.const 100) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $and-pos1 (; 3 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.eqz |
| (i32.const 1000) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const 1000) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const 100) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.lt_s |
| (i32.const 2000) |
| (i32.const 3000) |
| ) |
| ) |
| ) |
| (func $canonicalize (; 4 ;) (type $FUNCSIG$viidd) (param $x i32) (param $y i32) (param $fx f64) (param $fy f64) |
| (drop |
| (i32.and |
| (unreachable) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const 1) |
| (unreachable) |
| ) |
| ) |
| (drop |
| (i32.div_s |
| (unreachable) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.div_s |
| (i32.const 1) |
| (unreachable) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $x) |
| (i32.const 3) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $x) |
| (i32.const 4) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $x |
| (i32.const -4) |
| ) |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block (result i32) |
| (i32.const -5) |
| ) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block3 (result i32) |
| (i32.const -6) |
| ) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block4 (result i32) |
| (i32.const 5) |
| ) |
| (loop $loop-in (result i32) |
| (i32.const 6) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block6 (result i32) |
| (i32.const 8) |
| ) |
| (loop $loop-in5 (result i32) |
| (i32.const 7) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block8 (result i32) |
| (i32.const 10) |
| ) |
| (loop $loop-in7 (result i32) |
| (call $and-pos1) |
| (i32.const 9) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block10 (result i32) |
| (call $and-pos1) |
| (i32.const 12) |
| ) |
| (loop $loop-in9 (result i32) |
| (i32.const 11) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (loop $loop-in11 (result i32) |
| (call $and-pos1) |
| (i32.const 13) |
| ) |
| (block $block12 (result i32) |
| (call $and-pos1) |
| (i32.const 14) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block13 (result i32) |
| (call $and-pos1) |
| (i32.const 14) |
| ) |
| (loop $loop-in14 (result i32) |
| (call $and-pos1) |
| (i32.const 13) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block15 (result i32) |
| (i32.const 15) |
| ) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.and |
| (block $block16 (result i32) |
| (i32.const 15) |
| ) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.gt_s |
| (i32.const 16) |
| (i32.const 17) |
| ) |
| (i32.gt_u |
| (i32.const 18) |
| (i32.const 19) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.gt_s |
| (i32.const 22) |
| (i32.const 23) |
| ) |
| (i32.gt_u |
| (i32.const 20) |
| (i32.const 21) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.ctz |
| (local.get $x) |
| ) |
| (i32.ctz |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.ctz |
| (local.get $y) |
| ) |
| (i32.ctz |
| (local.get $x) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.ctz |
| (local.get $x) |
| ) |
| (i32.eqz |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.ctz |
| (local.get $y) |
| ) |
| (i32.eqz |
| (local.get $x) |
| ) |
| ) |
| ) |
| ) |
| (func $ne0 (; 5 ;) (type $FUNCSIG$i) (result i32) |
| (if |
| (call $ne0) |
| (nop) |
| ) |
| (if |
| (call $ne0) |
| (nop) |
| ) |
| (if |
| (i32.or |
| (call $ne0) |
| (call $ne0) |
| ) |
| (nop) |
| ) |
| (if |
| (i32.and |
| (i32.ne |
| (call $ne0) |
| (i32.const 0) |
| ) |
| (i32.ne |
| (call $ne0) |
| (i32.const 0) |
| ) |
| ) |
| (nop) |
| ) |
| (i32.const 1) |
| ) |
| (func $recurse-bool (; 6 ;) (type $FUNCSIG$v) |
| (if |
| (if (result i32) |
| (i32.const 1) |
| (call $ne0) |
| (call $ne1) |
| ) |
| (nop) |
| ) |
| (if |
| (block $block (result i32) |
| (nop) |
| (call $ne0) |
| ) |
| (nop) |
| ) |
| ) |
| (func $ne1 (; 7 ;) (type $FUNCSIG$i) (result i32) |
| (unreachable) |
| ) |
| (func $load-off-2 (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) |
| (i32.store |
| (i32.const 6) |
| (local.get $0) |
| ) |
| (i32.store |
| (i32.const 6) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const 5) |
| ) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const 7) |
| ) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const -11) |
| ) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const -13) |
| ) |
| (local.get $0) |
| ) |
| (i32.store |
| (i32.const 4) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.const -2) |
| (local.get $0) |
| ) |
| (i32.store |
| (i32.const 25) |
| (local.get $0) |
| ) |
| (i32.store offset=2 |
| (i32.const -25) |
| (local.get $0) |
| ) |
| (drop |
| (i32.load |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (i32.load |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (i32.load offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const 6) |
| ) |
| ) |
| ) |
| (drop |
| (i32.load |
| (i32.const 10) |
| ) |
| ) |
| (i32.load offset=2 |
| (i32.add |
| (local.get $0) |
| (i32.const 10) |
| ) |
| ) |
| ) |
| (func $sign-ext (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.eqz |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.and |
| (local.get $0) |
| (i32.const 65535) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.and |
| (local.get $0) |
| (i32.const 134217727) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const 100) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const 107) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.and |
| (local.get $1) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $0) |
| (i32.const 65535) |
| ) |
| (i32.and |
| (local.get $1) |
| (i32.const 65535) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 23) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.shr_u |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (drop |
| (i32.lt_s |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 0) |
| ) |
| ) |
| ) |
| (func $sign-ext-input (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.const 100) |
| ) |
| (drop |
| (i32.const 127) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.const 128) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (unreachable) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.div_s |
| (i32.const 1) |
| (i32.const 2) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const 127) |
| (i32.const 128) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.and |
| (i32.const 128) |
| (i32.const 129) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.xor |
| (i32.const 127) |
| (i32.const 126) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.xor |
| (i32.const 127) |
| (i32.const 128) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.const 127) |
| (i32.const 126) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.or |
| (i32.const 127) |
| (i32.const 128) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.const 32) |
| (i32.const 26) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shl |
| (i32.const 32) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.const 32) |
| (i32.const 27) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_u |
| (i32.const 256) |
| (i32.const 1) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.const 256) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.const 128) |
| (i32.const 35) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_s |
| (i32.const 256) |
| (i32.const 1) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.const 256) |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.const 128) |
| (i32.const 35) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_s |
| (i32.const -1) |
| (i32.const 32) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.and |
| (i32.const -1) |
| (i32.const 2147483647) |
| ) |
| (i32.const 31) |
| ) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (f32.le |
| (f32.const -1) |
| (f32.const -1) |
| ) |
| ) |
| (drop |
| (i32.clz |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.clz |
| (i32.const 0) |
| ) |
| (i32.const 26) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.clz |
| (i32.const 0) |
| ) |
| (i32.const 27) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.wrap_i64 |
| (i64.clz |
| (i64.const 0) |
| ) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.wrap_i64 |
| (i64.clz |
| (i64.const 0) |
| ) |
| ) |
| (i32.const 25) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.wrap_i64 |
| (i64.clz |
| (i64.const 0) |
| ) |
| ) |
| (i32.const 26) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const -1) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_u |
| (i32.wrap_i64 |
| (i64.const -1) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.wrap_i64 |
| (i64.const -1) |
| ) |
| (i32.const 25) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_u |
| (i32.wrap_i64 |
| (i64.extend_i32_s |
| (i32.const -1) |
| ) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.wrap_i64 |
| (i64.extend_i32_s |
| (i32.const -1) |
| ) |
| ) |
| (i32.const 25) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.xor |
| (local.get $0) |
| (i32.le_u |
| (local.get $0) |
| (i32.const 2) |
| ) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (func $linear-sums (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.add |
| (i32.shl |
| (local.get $0) |
| (i32.const 4) |
| ) |
| (local.get $1) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.add |
| (local.get $1) |
| (i32.shl |
| (local.get $0) |
| (i32.const 3) |
| ) |
| ) |
| (i32.const 12) |
| ) |
| ) |
| (drop |
| (i32.const 4) |
| ) |
| (drop |
| (i32.const 18) |
| ) |
| (drop |
| (i32.const 6) |
| ) |
| (drop |
| (i32.const -4) |
| ) |
| (drop |
| (i32.const 2) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 26) |
| ) |
| (drop |
| (i32.const -20) |
| ) |
| (drop |
| (i32.const 22) |
| ) |
| (drop |
| (i32.add |
| (i32.shl |
| (i32.const 1) |
| (local.get $0) |
| ) |
| (i32.const 14) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.shl |
| (local.get $1) |
| (i32.const 3) |
| ) |
| (i32.const -66) |
| ) |
| ) |
| (drop |
| (i32.const 44) |
| ) |
| (drop |
| (i32.add |
| (i32.mul |
| (local.get $0) |
| (i32.const 10) |
| ) |
| (i32.const 14) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.shl |
| (local.get $0) |
| (i32.const 1) |
| ) |
| (i32.const 34) |
| ) |
| ) |
| (drop |
| (local.get $0) |
| ) |
| ) |
| (func $almost-sign-ext (; 12 ;) (type $FUNCSIG$vi) (param $0 i32) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.const 100) |
| (i32.const 25) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shl |
| (i32.const 50) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $squaring (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.and |
| (local.get $0) |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $0) |
| (i32.and |
| (local.get $0) |
| (i32.const 11) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $0) |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (i32.or |
| (local.get $0) |
| (i32.const 203) |
| ) |
| ) |
| (drop |
| (i32.shl |
| (local.get $0) |
| (i32.const 19) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (local.get $0) |
| (i32.const 19) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (local.get $0) |
| (i32.const 19) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.shr_s |
| (local.get $0) |
| (i32.const 11) |
| ) |
| (i32.const 200) |
| ) |
| ) |
| ) |
| (func $sign-ext-ne (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.ne |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.ne |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.ne |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const 107) |
| ) |
| ) |
| (drop |
| (i32.ne |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const 111) |
| ) |
| ) |
| (drop |
| (i32.ne |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.and |
| (local.get $1) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| ) |
| (func $sign-ext-eqz (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.eqz |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| ) |
| (func $sign-ext-boolean (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (if (result i32) |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| (i32.const 100) |
| (i32.const 200) |
| ) |
| ) |
| ) |
| (func $add-sub-zero (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (local.get $0) |
| ) |
| (drop |
| (local.get $0) |
| ) |
| ) |
| (func $store-signext (; 18 ;) (type $FUNCSIG$vi) (param $0 i32) |
| (i32.store8 |
| (i32.const 8) |
| (local.get $0) |
| ) |
| (i32.store8 |
| (i32.const 8) |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 25) |
| ) |
| (i32.const 25) |
| ) |
| ) |
| (i32.store8 |
| (i32.const 8) |
| (local.get $0) |
| ) |
| (i32.store16 |
| (i32.const 8) |
| (local.get $0) |
| ) |
| (i32.store16 |
| (i32.const 8) |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 17) |
| ) |
| (i32.const 17) |
| ) |
| ) |
| (i32.store16 |
| (i32.const 8) |
| (local.get $0) |
| ) |
| (i32.store |
| (i32.const 8) |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| (i32.store |
| (i32.const 8) |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 8) |
| ) |
| (i32.const 8) |
| ) |
| ) |
| ) |
| (func $sign-ext-tee (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (local.tee $0 |
| (i32.const 127) |
| ) |
| ) |
| ) |
| (func $sign-ext-load (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.load8_s |
| (i32.const 256) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.shr_u |
| (i32.load8_s |
| (i32.const 256) |
| ) |
| (i32.const 1) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_u |
| (i32.load8_u |
| (i32.const 256) |
| ) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i32.load16_s |
| (i32.const 256) |
| ) |
| ) |
| (drop |
| (local.tee $1 |
| (i32.load8_s |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.tee $1 |
| (i32.load8_u |
| (i32.const 1) |
| ) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $1 |
| (i32.load8_s |
| (i32.const 1) |
| ) |
| ) |
| (i32.const 255) |
| ) |
| ) |
| (drop |
| (local.tee $1 |
| (i32.load8_u |
| (i32.const 1) |
| ) |
| ) |
| ) |
| ) |
| (func $mask-bits (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (local.tee $0 |
| (i32.const 127) |
| ) |
| ) |
| (drop |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| (i32.const 254) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| (i32.const 1279) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| (i32.const 1290) |
| ) |
| ) |
| (drop |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| ) |
| (drop |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.tee $0 |
| (i32.const 128) |
| ) |
| (i32.const 127) |
| ) |
| ) |
| ) |
| (func $local-info-zero-ext (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (local.set $x |
| (i32.const 212) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 500) |
| ) |
| (drop |
| (i32.and |
| (local.get $y) |
| (i32.const 255) |
| ) |
| ) |
| (local.set $0 |
| (i32.const 212) |
| ) |
| (drop |
| (i32.and |
| (local.get $0) |
| (i32.const 255) |
| ) |
| ) |
| (local.set $z |
| (i32.const 212) |
| ) |
| (local.set $z |
| (i32.const 220) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| (local.set $w |
| (i32.const 212) |
| ) |
| (local.set $w |
| (i32.const 1000) |
| ) |
| (drop |
| (i32.and |
| (local.get $w) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (func $local-info-sign-ext-bitsize (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (local.set $x |
| (i32.const 127) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.const 128) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $y) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $0 |
| (i32.const 127) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $z |
| (i32.const 127) |
| ) |
| (local.set $z |
| (i32.const 100) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| (local.set $w |
| (i32.const 127) |
| ) |
| (local.set $w |
| (i32.const 150) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $w) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (func $local-info-sign-ext-already-exted (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (local.set $x |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $y) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $0 |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $z |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $z |
| (i32.shr_s |
| (i32.shl |
| (local.get $1) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (local.get $z) |
| ) |
| (local.set $w |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $w |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 23) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $w) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $0) |
| (i32.const 24) |
| ) |
| (i32.const 23) |
| ) |
| ) |
| ) |
| (func $signed-loads-fill-the-bits (; 25 ;) (type $FUNCSIG$ii) (param $$e i32) (result i32) |
| (local $$0 i32) |
| (local $$conv i32) |
| (local.set $$0 |
| (i32.load8_s |
| (i32.const 1024) |
| ) |
| ) |
| (local.set $$conv |
| (i32.and |
| (local.get $$0) |
| (i32.const 255) |
| ) |
| ) |
| (return |
| (i32.eq |
| (local.get $$e) |
| (local.get $$conv) |
| ) |
| ) |
| ) |
| (func $local-info-sign-ext-already-exted-by-load (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (local $x i32) |
| (local $y i32) |
| (local $z i32) |
| (local $w i32) |
| (local.set $x |
| (i32.load8_s |
| (i32.const 1024) |
| ) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (local.set $y |
| (i32.load8_u |
| (i32.const 1024) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $y) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| (local.set $z |
| (i32.load16_s |
| (i32.const 1024) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (local.get $z) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (func $compare-load-s-sign-extend (; 27 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.eq |
| (i32.load8_u |
| (local.get $0) |
| ) |
| (i32.and |
| (local.get $1) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.load8_u |
| (local.get $0) |
| ) |
| (i32.and |
| (local.get $1) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.load8_u |
| (local.get $0) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (local.get $1) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.load8_s |
| (local.get $0) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (local.get $1) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.load8_u |
| (local.get $0) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (local.get $1) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.load8_s |
| (local.get $0) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (local.get $1) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| ) |
| ) |
| (func $unsign-diff-sizes (; 28 ;) (type $FUNCSIG$iii) (param $x i32) (param $y i32) (result i32) |
| (i32.ne |
| (i32.shr_s |
| (i32.shl |
| (call $unsign-diff-sizes |
| (i32.const -1) |
| (i32.const 5) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| (i32.shr_s |
| (i32.shl |
| (call $unsign-diff-sizes |
| (i32.const 1) |
| (i32.const 2006) |
| ) |
| (i32.const 16) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| ) |
| (func $unsign-same-sizes (; 29 ;) (type $FUNCSIG$iii) (param $x i32) (param $y i32) (result i32) |
| (i32.ne |
| (i32.and |
| (call $unsign-same-sizes |
| (i32.const -1) |
| (i32.const 5) |
| ) |
| (i32.const 255) |
| ) |
| (i32.and |
| (call $unsign-same-sizes |
| (i32.const 1) |
| (i32.const 2006) |
| ) |
| (i32.const 255) |
| ) |
| ) |
| ) |
| (func $fuzz-almost-sign-ext (; 30 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.load16_u |
| (i32.const 2278) |
| ) |
| (i32.const 17) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.load16_u |
| (i32.const 2278) |
| ) |
| (i32.const 17) |
| ) |
| (i32.const 16) |
| ) |
| ) |
| ) |
| (func $fuzz-comp-impossible (; 31 ;) (type $FUNCSIG$vi) (param $x i32) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 65535) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const 127) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.and |
| (local.get $x) |
| (i32.const 255) |
| ) |
| (i32.const 252) |
| ) |
| ) |
| ) |
| (func $if-parallel (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.add |
| (local.get $1) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (drop |
| (local.tee $0 |
| (local.get $1) |
| ) |
| ) |
| (i32.add |
| (local.get $1) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (i32.add |
| (local.get $1) |
| (unreachable) |
| ) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (drop |
| (local.tee $0 |
| (local.get $1) |
| ) |
| ) |
| (i32.add |
| (local.get $1) |
| (unreachable) |
| ) |
| ) |
| ) |
| (drop |
| (if (result i32) |
| (unreachable) |
| (i32.add |
| (local.get $1) |
| (unreachable) |
| ) |
| (i32.add |
| (local.get $1) |
| (unreachable) |
| ) |
| ) |
| ) |
| ) |
| (func $select-parallel (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) |
| (drop |
| (i32.add |
| (local.get $1) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (select |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (local.get $0) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (drop |
| (local.tee $0 |
| (local.get $1) |
| ) |
| ) |
| (i32.add |
| (local.get $1) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (select |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (local.tee $0 |
| (local.get $1) |
| ) |
| ) |
| ) |
| (drop |
| (select |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (local.tee $0 |
| (local.get $1) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $zero-shifts-is-not-sign-ext (; 34 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.eq |
| (i32.load16_s align=1 |
| (i32.const 790656516) |
| ) |
| (i32.const -5431187) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.shl |
| (i32.load16_s align=1 |
| (i32.const 790656516) |
| ) |
| (i32.const 1) |
| ) |
| (i32.const -5431187) |
| ) |
| ) |
| ) |
| (func $zero-ops (; 35 ;) (type $FUNCSIG$i) (result i32) |
| (return |
| (i32.eq |
| (i32.load16_s align=1 |
| (i32.const 790656516) |
| ) |
| (i32.const -1337) |
| ) |
| ) |
| ) |
| (func $sign-ext-1-and-ne (; 36 ;) (type $FUNCSIG$i) (result i32) |
| (i32.ne |
| (i32.and |
| (call $sign-ext-1-and-ne) |
| (i32.const 2147483647) |
| ) |
| (i32.const -2147483648) |
| ) |
| ) |
| (func $neg-shifts-and-255 (; 37 ;) (type $FUNCSIG$i) (result i32) |
| (i32.and |
| (i32.shr_u |
| (i32.const -99) |
| (i32.const -32) |
| ) |
| (i32.const 255) |
| ) |
| ) |
| (func $neg-shifts-and-255-b (; 38 ;) (type $FUNCSIG$i) (result i32) |
| (i32.and |
| (i32.shl |
| (i32.const -2349025) |
| (i32.const -32) |
| ) |
| (i32.const 255) |
| ) |
| ) |
| (func $shifts-square-overflow (; 39 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (i32.shr_u |
| (i32.shr_u |
| (local.get $x) |
| (i32.const 65535) |
| ) |
| (i32.const 32767) |
| ) |
| ) |
| (func $shifts-square-no-overflow-small (; 40 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (i32.shr_u |
| (local.get $x) |
| (i32.const 9) |
| ) |
| ) |
| (func $shifts-square-overflow-64 (; 41 ;) (type $FUNCSIG$jj) (param $x i64) (result i64) |
| (i64.shr_u |
| (i64.shr_u |
| (local.get $x) |
| (i64.const 65535) |
| ) |
| (i64.const 64767) |
| ) |
| ) |
| (func $shifts-square-no-overflow-small-64 (; 42 ;) (type $FUNCSIG$jj) (param $x i64) (result i64) |
| (i64.shr_u |
| (local.get $x) |
| (i64.const 9) |
| ) |
| ) |
| (func $shifts-square-unreachable (; 43 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (i32.shr_u |
| (i32.shr_u |
| (unreachable) |
| (i32.const 1031) |
| ) |
| (i32.const 4098) |
| ) |
| ) |
| (func $mix-shifts (; 44 ;) (type $FUNCSIG$i) (result i32) |
| (i32.shr_s |
| (i32.shl |
| (i32.const 23) |
| (i32.const -61) |
| ) |
| (i32.const 168) |
| ) |
| ) |
| (func $actually-no-shifts (; 45 ;) (type $FUNCSIG$i) (result i32) |
| (i32.const 33) |
| ) |
| (func $less-shifts-than-it-seems (; 46 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (i32.const 4800) |
| ) |
| (func $and-popcount32 (; 47 ;) (type $FUNCSIG$i) (result i32) |
| (i32.and |
| (i32.popcnt |
| (i32.const -1) |
| ) |
| (i32.const 31) |
| ) |
| ) |
| (func $and-popcount32-big (; 48 ;) (type $FUNCSIG$i) (result i32) |
| (i32.popcnt |
| (i32.const -1) |
| ) |
| ) |
| (func $and-popcount64 (; 49 ;) (type $FUNCSIG$j) (result i64) |
| (i64.and |
| (i64.popcnt |
| (i64.const -1) |
| ) |
| (i64.const 63) |
| ) |
| ) |
| (func $and-popcount64-big (; 50 ;) (type $FUNCSIG$j) (result i64) |
| (i64.and |
| (i64.popcnt |
| (i64.const -1) |
| ) |
| (i64.const 127) |
| ) |
| ) |
| (func $and-popcount64-bigger (; 51 ;) (type $FUNCSIG$j) (result i64) |
| (i64.and |
| (i64.popcnt |
| (i64.const -1) |
| ) |
| (i64.const 255) |
| ) |
| ) |
| (func $optimizeAddedConstants-filters-through-nonzero (; 52 ;) (type $FUNCSIG$i) (result i32) |
| (i32.add |
| (i32.shl |
| (i32.const -536870912) |
| (i32.wrap_i64 |
| (i64.const 0) |
| ) |
| ) |
| (i32.const -31744) |
| ) |
| ) |
| (func $optimizeAddedConstants-filters-through-nonzero-b (; 53 ;) (type $FUNCSIG$i) (result i32) |
| (i32.add |
| (i32.shl |
| (i32.const -536870912) |
| (i32.wrap_i64 |
| (i64.const -1) |
| ) |
| ) |
| (i32.const -31744) |
| ) |
| ) |
| (func $return-proper-value-from-shift-left-by-zero (; 54 ;) (type $FUNCSIG$i) (result i32) |
| (if (result i32) |
| (i32.add |
| (loop $label$0 (result i32) |
| (block $label$1 |
| (br_if $label$1 |
| (i32.load |
| (i32.const 0) |
| ) |
| ) |
| ) |
| (i32.const -62) |
| ) |
| (i32.const 40) |
| ) |
| (i32.const 1) |
| (i32.const 0) |
| ) |
| ) |
| (func $de-morgan-2 (; 55 ;) (type $FUNCSIG$vii) (param $x i32) (param $y i32) |
| (drop |
| (i32.eqz |
| (i32.or |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.eqz |
| (local.get $x) |
| ) |
| (i32.eqz |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.xor |
| (i32.eqz |
| (local.get $x) |
| ) |
| (i32.eqz |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $y) |
| (i32.eqz |
| (local.get $x) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.eqz |
| (local.get $y) |
| ) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.eqz |
| (local.get $x) |
| ) |
| (i32.wrap_i64 |
| (i64.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.eqz |
| (local.get $y) |
| ) |
| (i32.wrap_i64 |
| (i64.const 1) |
| ) |
| ) |
| ) |
| ) |
| (func $subzero1 (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) |
| (i32.sub |
| (i32.const 32) |
| (i32.clz |
| (local.get $0) |
| ) |
| ) |
| ) |
| (func $subzero2 (; 57 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) |
| (i32.sub |
| (i32.const 32) |
| (i32.clz |
| (local.get $0) |
| ) |
| ) |
| ) |
| (func $subzero3 (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) |
| (i32.sub |
| (local.get $1) |
| (i32.clz |
| (local.get $0) |
| ) |
| ) |
| ) |
| (func $subzero4 (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) |
| (i32.sub |
| (local.get $0) |
| (i32.clz |
| (local.get $1) |
| ) |
| ) |
| ) |
| (func $mul-power-2 (; 60 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (drop |
| (call $mul-power-2 |
| (i32.shl |
| (local.get $x) |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (i32.mul |
| (local.get $x) |
| (i32.const 5) |
| ) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (i32.mul |
| (call $mul-power-2 |
| (i32.const 123) |
| ) |
| (i32.const 0) |
| ) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (i32.mul |
| (local.get $x) |
| (i32.const -1) |
| ) |
| ) |
| ) |
| (drop |
| (call $mul-power-2 |
| (i32.shl |
| (local.get $x) |
| (i32.const 31) |
| ) |
| ) |
| ) |
| (unreachable) |
| ) |
| (func $urem-power-2 (; 61 ;) (type $FUNCSIG$ii) (param $x i32) (result i32) |
| (drop |
| (call $urem-power-2 |
| (i32.and |
| (local.get $x) |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (drop |
| (call $urem-power-2 |
| (i32.rem_u |
| (local.get $x) |
| (i32.const 5) |
| ) |
| ) |
| ) |
| (drop |
| (call $urem-power-2 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (call $urem-power-2 |
| (i32.rem_u |
| (local.get $x) |
| (i32.const 0) |
| ) |
| ) |
| ) |
| (drop |
| (call $urem-power-2 |
| (i32.rem_u |
| (local.get $x) |
| (i32.const -1) |
| ) |
| ) |
| ) |
| (drop |
| (call $urem-power-2 |
| (i32.and |
| (local.get $x) |
| (i32.const 2147483647) |
| ) |
| ) |
| ) |
| (unreachable) |
| ) |
| (func $orZero (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) |
| (local.get $0) |
| ) |
| (func $andZero (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.and |
| (call $andZero |
| (i32.const 1234) |
| ) |
| (i32.const 0) |
| ) |
| ) |
| (unreachable) |
| ) |
| (func $abstract-additions (; 64 ;) (type $FUNCSIG$vijfd) (param $x32 i32) (param $x64 i64) (param $y32 f32) (param $y64 f64) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i64.const 0) |
| ) |
| (drop |
| (f32.mul |
| (local.get $y32) |
| (f32.const 0) |
| ) |
| ) |
| (drop |
| (f64.mul |
| (local.get $y64) |
| (f64.const 0) |
| ) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $y32) |
| ) |
| (drop |
| (local.get $y64) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i64.const 0) |
| ) |
| (drop |
| (i32.and |
| (unreachable) |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (i64.and |
| (unreachable) |
| (i64.const 0) |
| ) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x32) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $x64) |
| ) |
| (drop |
| (local.get $y32) |
| ) |
| (drop |
| (local.get $y64) |
| ) |
| (drop |
| (f32.div |
| (local.get $y32) |
| (f32.const 1.2000000476837158) |
| ) |
| ) |
| (drop |
| (i32.mul |
| (local.get $x32) |
| (i32.const -1) |
| ) |
| ) |
| (drop |
| (i64.mul |
| (local.get $x64) |
| (i64.const -1) |
| ) |
| ) |
| (drop |
| (f32.mul |
| (local.get $y32) |
| (f32.const -1) |
| ) |
| ) |
| (drop |
| (f64.mul |
| (local.get $y64) |
| (f64.const -1) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (local.get $x32) |
| (i32.const 10) |
| ) |
| ) |
| (drop |
| (i32.le_u |
| (i32.add |
| (local.get $x32) |
| (i32.const 10) |
| ) |
| (i32.const 20) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (local.get $x32) |
| (i32.const 30) |
| ) |
| ) |
| (drop |
| (i64.eq |
| (local.get $x64) |
| (i64.const 10) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (local.get $x32) |
| (i32.const 10) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.add |
| (local.get $x32) |
| (i32.const 10) |
| ) |
| (local.get $x32) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (local.get $x32) |
| (i32.const 30) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.sub |
| (local.get $x32) |
| (i32.const 30) |
| ) |
| (local.get $x32) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.sub |
| (local.get $x32) |
| (i32.const 30) |
| ) |
| (local.get $x32) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.sub |
| (local.get $x32) |
| (i32.const 10) |
| ) |
| (local.get $x32) |
| ) |
| ) |
| (drop |
| (i64.le_s |
| (i64.sub |
| (local.get $x64) |
| (i64.const 288230376151711744) |
| ) |
| (i64.const 9223372036854775807) |
| ) |
| ) |
| ) |
| (func $negatives-are-sometimes-better (; 65 ;) (type $FUNCSIG$vijf) (param $x i32) (param $y i64) (param $z f32) |
| (drop |
| (i32.sub |
| (local.get $x) |
| (i32.const -64) |
| ) |
| ) |
| (drop |
| (i32.add |
| (local.get $x) |
| (i32.const -64) |
| ) |
| ) |
| (drop |
| (i32.sub |
| (local.get $x) |
| (i32.const -8192) |
| ) |
| ) |
| (drop |
| (i32.sub |
| (local.get $x) |
| (i32.const -1048576) |
| ) |
| ) |
| (drop |
| (i32.sub |
| (local.get $x) |
| (i32.const -134217728) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -64) |
| ) |
| ) |
| (drop |
| (i64.add |
| (local.get $y) |
| (i64.const -64) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -8192) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -1048576) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -134217728) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -17179869184) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -2199023255552) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -281474976710656) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -36028797018963968) |
| ) |
| ) |
| (drop |
| (i64.sub |
| (local.get $y) |
| (i64.const -4611686018427387904) |
| ) |
| ) |
| (drop |
| (f32.add |
| (local.get $z) |
| (f32.const 64) |
| ) |
| ) |
| ) |
| (func $shift-a-zero (; 66 ;) (type $FUNCSIG$vijf) (param $x i32) (param $y i64) (param $z f32) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i64.const 0) |
| ) |
| (drop |
| (i32.shl |
| (i32.const 0) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $identical-siblings (; 67 ;) (type $FUNCSIG$vijdi) (param $x i32) (param $y i64) (param $z f64) (param $xx i32) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i64.const 0) |
| ) |
| (drop |
| (f64.sub |
| (local.get $z) |
| (local.get $z) |
| ) |
| ) |
| (drop |
| (i32.sub |
| (local.get $x) |
| (local.get $xx) |
| ) |
| ) |
| (drop |
| (i32.sub |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| (drop |
| (i32.add |
| (local.get $x) |
| (local.get $x) |
| ) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i64.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| (drop |
| (i32.const 1) |
| ) |
| ) |
| (func $all_ones (; 68 ;) (type $0) (param $x i32) (param $y i64) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (i32.const -1) |
| ) |
| (drop |
| (i32.or |
| (local.tee $x |
| (i32.const 1337) |
| ) |
| (i32.const -1) |
| ) |
| ) |
| (drop |
| (local.get $y) |
| ) |
| (drop |
| (i64.const -1) |
| ) |
| ) |
| (func $xor (; 69 ;) (type $0) (param $x i32) (param $y i64) |
| (drop |
| (local.get $x) |
| ) |
| ) |
| (func $select-on-const (; 70 ;) (type $FUNCSIG$vii) (param $x i32) (param $y i32) |
| (drop |
| (local.get $x) |
| ) |
| (drop |
| (i32.const 3) |
| ) |
| (drop |
| (local.tee $x |
| (i32.const 5) |
| ) |
| ) |
| (drop |
| (block (result i32) |
| (drop |
| (local.tee $x |
| (i32.const 6) |
| ) |
| ) |
| (i32.const 7) |
| ) |
| ) |
| (drop |
| (select |
| (i32.const 4) |
| (local.tee $x |
| (i32.const 5) |
| ) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.tee $x |
| (i32.const 6) |
| ) |
| ) |
| ) |
| (func $getFallthrough (; 71 ;) (type $FUNCSIG$v) |
| (local $x0 i32) |
| (local $x1 i32) |
| (local $x2 i32) |
| (local $x3 i32) |
| (local $x4 i32) |
| (local $x5 i32) |
| (local $x6 i32) |
| (local $x7 i32) |
| (local.set $x0 |
| (i32.const 1) |
| ) |
| (drop |
| (local.get $x0) |
| ) |
| (local.set $x1 |
| (local.tee $x2 |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x1) |
| ) |
| (local.set $x3 |
| (loop $loop-in (result i32) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x3) |
| ) |
| (local.set $x4 |
| (if (result i32) |
| (i32.const 1) |
| (i32.const 2) |
| (i32.const 3) |
| ) |
| ) |
| (drop |
| (i32.and |
| (local.get $x4) |
| (i32.const 7) |
| ) |
| ) |
| (local.set $x5 |
| (if (result i32) |
| (i32.const 1) |
| (unreachable) |
| (i32.const 3) |
| ) |
| ) |
| (drop |
| (local.get $x5) |
| ) |
| (local.set $x6 |
| (if (result i32) |
| (i32.const 1) |
| (i32.const 3) |
| (unreachable) |
| ) |
| ) |
| (drop |
| (local.get $x6) |
| ) |
| (drop |
| (block $out (result i32) |
| (local.set $x7 |
| (br_if $out |
| (i32.const 1) |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (local.get $x7) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $tee-with-unreachable-value (; 72 ;) (type $FUNCSIG$d) (result f64) |
| (local $var$0 i32) |
| (block $label$1 (result f64) |
| (local.tee $var$0 |
| (br_if $label$1 |
| (f64.const 1) |
| (unreachable) |
| ) |
| ) |
| ) |
| ) |
| (func $add-sub-zero-reorder-1 (; 73 ;) (type $FUNCSIG$ii) (param $temp i32) (result i32) |
| (i32.add |
| (i32.add |
| (i32.sub |
| (i32.const 0) |
| (local.get $temp) |
| ) |
| (local.tee $temp |
| (i32.const 1) |
| ) |
| ) |
| (i32.const 2) |
| ) |
| ) |
| (func $add-sub-zero-reorder-2 (; 74 ;) (type $FUNCSIG$ii) (param $temp i32) (result i32) |
| (i32.add |
| (i32.sub |
| (local.tee $temp |
| (i32.const 1) |
| ) |
| (local.get $temp) |
| ) |
| (i32.const 2) |
| ) |
| ) |
| (func $pre-combine-or (; 75 ;) (type $FUNCSIG$vii) (param $x i32) (param $y i32) |
| (drop |
| (i32.ge_s |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (i32.ge_s |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.eq |
| (local.get $x) |
| (i32.const 1) |
| ) |
| (i32.gt_s |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.eq |
| (local.get $x) |
| (local.get $y) |
| ) |
| (i32.gt_s |
| (local.get $x) |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.gt_s |
| (call $ne0) |
| (local.get $y) |
| ) |
| (i32.eq |
| (call $ne0) |
| (local.get $y) |
| ) |
| ) |
| ) |
| (drop |
| (i32.or |
| (i32.gt_s |
| (local.get $y) |
| (call $ne0) |
| ) |
| (i32.eq |
| (call $ne0) |
| (local.get $y) |
| ) |
| ) |
| ) |
| ) |
| (func $combine-or (; 76 ;) (type $FUNCSIG$vii) (param $x i32) (param $y i32) |
| (drop |
| (i32.ge_s |
| (local.get $x) |
| (local.get $y) |
| ) |
| ) |
| ) |
| (func $select-into-arms (; 77 ;) (type $FUNCSIG$vii) (param $x i32) (param $y i32) |
| (if |
| (select |
| (local.get $x) |
| (local.get $y) |
| (local.get $y) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (module |
| (type $FUNCSIG$v (func)) |
| (import "env" "memory" (memory $0 (shared 256 256))) |
| (func $x (; 0 ;) (type $FUNCSIG$v) |
| (drop |
| (i32.shr_s |
| (i32.shl |
| (i32.atomic.load8_u |
| (i32.const 100) |
| ) |
| (i32.const 24) |
| ) |
| (i32.const 24) |
| ) |
| ) |
| ) |
| ) |