summaryrefslogtreecommitdiff
path: root/test/passes/optimize-instructions_all-features.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/optimize-instructions_all-features.txt')
-rw-r--r--test/passes/optimize-instructions_all-features.txt3345
1 files changed, 3345 insertions, 0 deletions
diff --git a/test/passes/optimize-instructions_all-features.txt b/test/passes/optimize-instructions_all-features.txt
new file mode 100644
index 000000000..53c28e896
--- /dev/null
+++ b/test/passes/optimize-instructions_all-features.txt
@@ -0,0 +1,3345 @@
+(module
+ (type $i32_i32_=>_none (func (param i32 i32)))
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $none_=>_i32 (func (result i32)))
+ (type $none_=>_none (func))
+ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
+ (type $i32_=>_none (func (param i32)))
+ (type $i32_i64_=>_none (func (param i32 i64)))
+ (type $none_=>_i64 (func (result i64)))
+ (type $i32_i64_f32_=>_none (func (param i32 i64 f32)))
+ (type $i64_=>_i64 (func (param i64) (result i64)))
+ (type $i32_i32_f64_f64_=>_none (func (param i32 i32 f64 f64)))
+ (type $i32_i64_f32_f64_=>_none (func (param i32 i64 f32 f64)))
+ (type $i32_i64_f64_i32_=>_none (func (param i32 i64 f64 i32)))
+ (type $none_=>_f64 (func (result f64)))
+ (memory $0 0)
+ (export "load-off-2" (func $load-off-2))
+ (func $f (; 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 ;)
+ (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 ;)
+ (drop
+ (i32.const 100)
+ )
+ (drop
+ (i32.and
+ (i32.const 100)
+ (i32.const 1)
+ )
+ )
+ )
+ (func $and-pos1 (; 3 ;)
+ (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 ;) (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 ;) (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 ;)
+ (if
+ (if (result i32)
+ (i32.const 1)
+ (call $ne0)
+ (call $ne1)
+ )
+ (nop)
+ )
+ (if
+ (block $block (result i32)
+ (nop)
+ (call $ne0)
+ )
+ (nop)
+ )
+ )
+ (func $ne1 (; 7 ;) (result i32)
+ (unreachable)
+ )
+ (func $load-off-2 (; 8 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (param $0 i32) (param $1 i32)
+ (drop
+ (i32.eqz
+ (i32.and
+ (local.get $0)
+ (i32.const 255)
+ )
+ )
+ )
+ )
+ (func $sign-ext-boolean (; 16 ;) (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 ;) (param $0 i32) (param $1 i32)
+ (drop
+ (local.get $0)
+ )
+ (drop
+ (local.get $0)
+ )
+ )
+ (func $store-signext (; 18 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;)
+ (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 ;) (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 ;) (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 ;) (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 ;)
+ (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 ;) (result i32)
+ (return
+ (i32.eq
+ (i32.load16_s align=1
+ (i32.const 790656516)
+ )
+ (i32.const -1337)
+ )
+ )
+ )
+ (func $sign-ext-1-and-ne (; 36 ;) (result i32)
+ (i32.ne
+ (i32.and
+ (call $sign-ext-1-and-ne)
+ (i32.const 2147483647)
+ )
+ (i32.const -2147483648)
+ )
+ )
+ (func $neg-shifts-and-255 (; 37 ;) (result i32)
+ (i32.and
+ (i32.shr_u
+ (i32.const -99)
+ (i32.const -32)
+ )
+ (i32.const 255)
+ )
+ )
+ (func $neg-shifts-and-255-b (; 38 ;) (result i32)
+ (i32.and
+ (i32.shl
+ (i32.const -2349025)
+ (i32.const -32)
+ )
+ (i32.const 255)
+ )
+ )
+ (func $shifts-square-overflow (; 39 ;) (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 ;) (param $x i32) (result i32)
+ (i32.shr_u
+ (local.get $x)
+ (i32.const 9)
+ )
+ )
+ (func $shifts-square-overflow-64 (; 41 ;) (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 ;) (param $x i64) (result i64)
+ (i64.shr_u
+ (local.get $x)
+ (i64.const 9)
+ )
+ )
+ (func $shifts-square-unreachable (; 43 ;) (param $x i32) (result i32)
+ (i32.shr_u
+ (i32.shr_u
+ (unreachable)
+ (i32.const 1031)
+ )
+ (i32.const 4098)
+ )
+ )
+ (func $mix-shifts (; 44 ;) (result i32)
+ (i32.shr_s
+ (i32.shl
+ (i32.const 23)
+ (i32.const -61)
+ )
+ (i32.const 168)
+ )
+ )
+ (func $actually-no-shifts (; 45 ;) (result i32)
+ (i32.const 33)
+ )
+ (func $less-shifts-than-it-seems (; 46 ;) (param $x i32) (result i32)
+ (i32.const 4800)
+ )
+ (func $and-popcount32 (; 47 ;) (result i32)
+ (i32.and
+ (i32.popcnt
+ (i32.const -1)
+ )
+ (i32.const 31)
+ )
+ )
+ (func $and-popcount32-big (; 48 ;) (result i32)
+ (i32.popcnt
+ (i32.const -1)
+ )
+ )
+ (func $and-popcount64 (; 49 ;) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 63)
+ )
+ )
+ (func $and-popcount64-big (; 50 ;) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 127)
+ )
+ )
+ (func $and-popcount64-bigger (; 51 ;) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 255)
+ )
+ )
+ (func $optimizeAddedConstants-filters-through-nonzero (; 52 ;) (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 ;) (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 ;) (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 ;) (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 ;) (param $0 i32) (result i32)
+ (i32.sub
+ (i32.const 32)
+ (i32.clz
+ (local.get $0)
+ )
+ )
+ )
+ (func $subzero2 (; 57 ;) (param $0 i32) (result i32)
+ (i32.sub
+ (i32.const 32)
+ (i32.clz
+ (local.get $0)
+ )
+ )
+ )
+ (func $subzero3 (; 58 ;) (param $0 i32) (param $1 i32) (result i32)
+ (i32.sub
+ (local.get $1)
+ (i32.clz
+ (local.get $0)
+ )
+ )
+ )
+ (func $subzero4 (; 59 ;) (param $0 i32) (param $1 i32) (result i32)
+ (i32.sub
+ (local.get $0)
+ (i32.clz
+ (local.get $1)
+ )
+ )
+ )
+ (func $mul-power-2 (; 60 ;) (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 ;) (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 ;) (param $0 i32) (result i32)
+ (local.get $0)
+ )
+ (func $andZero (; 63 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (param $x i32) (param $y i64)
+ (drop
+ (local.get $x)
+ )
+ )
+ (func $select-on-const (; 70 ;) (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 ;)
+ (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 ;) (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 ;) (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 ;) (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 ;) (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 ;) (param $x i32) (param $y i32)
+ (drop
+ (i32.ge_s
+ (local.get $x)
+ (local.get $y)
+ )
+ )
+ )
+ (func $select-into-arms (; 77 ;) (param $x i32) (param $y i32)
+ (if
+ (select
+ (local.get $x)
+ (local.get $y)
+ (local.get $y)
+ )
+ (unreachable)
+ )
+ )
+)
+(module
+ (type $none_=>_none (func))
+ (import "env" "memory" (memory $0 (shared 256 256)))
+ (func $x (; 0 ;)
+ (drop
+ (i32.shr_s
+ (i32.shl
+ (i32.atomic.load8_u
+ (i32.const 100)
+ )
+ (i32.const 24)
+ )
+ (i32.const 24)
+ )
+ )
+ )
+)
+(module
+ (type $none_=>_anyref (func (result anyref)))
+ (func $test (; 0 ;) (result anyref)
+ (ref.null)
+ )
+)