blob: 0b156f80329df3335fde1ce41d9adcfcde39aef9 [file] [edit]
(module
(type $0 (func (param i32 i64)))
(type $1 (func))
(type $2 (func (result i32)))
(type $3 (func (param i32) (result i32)))
(type $4 (func (param i32 i32)))
(type $5 (func (param i32)))
(type $6 (func (param i32 i32) (result i32)))
(type $7 (func (param i64) (result i64)))
(type $8 (func (result i64)))
(type $9 (func (param i32 i64 f32 f64)))
(type $10 (func (param i32 i64 f32)))
(type $11 (func (param i32 i64 f64 i32)))
(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
(get_local $i1)
)
(drop
(i32.const 10)
)
)
(if
(get_local $i1)
(drop
(i32.const 12)
)
(drop
(i32.const 11)
)
)
(if
(i64.eqz
(get_local $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)
)
)
(if
(i32.const 123)
(nop)
)
(drop
(select
(i32.const 102)
(i32.const 101)
(get_local $i1)
)
)
(drop
(select
(tee_local $i1
(i32.const 103)
)
(tee_local $i1
(i32.const 104)
)
(i32.eqz
(get_local $i1)
)
)
)
(drop
(i32.const 0)
)
)
(func $load-store (; 1 ;) (type $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 ;) (type $1)
(drop
(i32.const 100)
)
(drop
(i32.and
(i32.const 100)
(i32.const 1)
)
)
)
(func $and-pos1 (; 3 ;) (type $1)
(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-binary (; 4 ;) (type $1)
(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)
)
)
)
(func $ne0 (; 5 ;) (type $2) (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 $1)
(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 $2) (result i32)
(unreachable)
)
(func $load-off-2 (; 8 ;) (type $3) (param $0 i32) (result i32)
(i32.store
(i32.const 6)
(get_local $0)
)
(i32.store
(i32.const 6)
(get_local $0)
)
(i32.store offset=2
(i32.add
(get_local $0)
(i32.const 5)
)
(get_local $0)
)
(i32.store offset=2
(i32.add
(get_local $0)
(i32.const 7)
)
(get_local $0)
)
(i32.store offset=2
(i32.add
(get_local $0)
(i32.const -11)
)
(get_local $0)
)
(i32.store offset=2
(i32.add
(get_local $0)
(i32.const -13)
)
(get_local $0)
)
(i32.store
(i32.const 4)
(get_local $0)
)
(i32.store offset=2
(i32.const -2)
(get_local $0)
)
(i32.store
(i32.const 25)
(get_local $0)
)
(i32.store offset=2
(i32.const -25)
(get_local $0)
)
(drop
(i32.load
(i32.const 8)
)
)
(drop
(i32.load
(i32.const 8)
)
)
(drop
(i32.load offset=2
(i32.add
(get_local $0)
(i32.const 6)
)
)
)
(drop
(i32.load
(i32.const 10)
)
)
(i32.load offset=2
(i32.add
(get_local $0)
(i32.const 10)
)
)
)
(func $sign-ext (; 9 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.eqz
(i32.and
(get_local $0)
(i32.const 255)
)
)
)
(drop
(i32.eqz
(i32.and
(get_local $0)
(i32.const 65535)
)
)
)
(drop
(i32.eqz
(i32.and
(get_local $0)
(i32.const 134217727)
)
)
)
(drop
(i32.eq
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const 100)
)
)
(drop
(i32.eq
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const 107)
)
)
(drop
(i32.eq
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.and
(get_local $1)
(i32.const 255)
)
)
)
(drop
(i32.eq
(i32.and
(get_local $0)
(i32.const 65535)
)
(i32.and
(get_local $1)
(i32.const 65535)
)
)
)
(drop
(i32.eqz
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 23)
)
)
)
(drop
(i32.eqz
(i32.shr_u
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
)
(drop
(i32.lt_s
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
(i32.const 0)
)
)
)
(func $sign-ext-input (; 10 ;) (type $4) (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
(get_local $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_s/i32
(i32.const -1)
)
)
(i32.const 24)
)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(i32.shr_u
(i32.wrap/i64
(i64.extend_s/i32
(i32.const -1)
)
)
(i32.const 25)
)
)
(drop
(i32.shr_s
(i32.shl
(i32.xor
(i32.le_u
(get_local $0)
(i32.const 2)
)
(get_local $0)
)
(i32.const 24)
)
(i32.const 24)
)
)
)
(func $linear-sums (; 11 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.add
(get_local $1)
(i32.shl
(get_local $0)
(i32.const 4)
)
)
)
(drop
(i32.add
(i32.add
(get_local $1)
(i32.shl
(get_local $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)
(get_local $0)
)
(i32.const 14)
)
)
(drop
(i32.add
(i32.shl
(get_local $1)
(i32.const 3)
)
(i32.const -66)
)
)
(drop
(i32.const 44)
)
(drop
(i32.add
(i32.mul
(get_local $0)
(i32.const 10)
)
(i32.const 14)
)
)
(drop
(i32.add
(i32.shl
(get_local $0)
(i32.const 1)
)
(i32.const 34)
)
)
(drop
(get_local $0)
)
)
(func $almost-sign-ext (; 12 ;) (type $4) (param $0 i32) (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 $4) (param $0 i32) (param $1 i32)
(drop
(i32.and
(get_local $0)
(i32.const 8)
)
)
(drop
(i32.and
(i32.and
(get_local $0)
(i32.const 11)
)
(get_local $0)
)
)
(drop
(i32.and
(get_local $0)
(i32.const 8)
)
)
(drop
(i32.or
(get_local $0)
(i32.const 203)
)
)
(drop
(i32.shl
(get_local $0)
(i32.const 19)
)
)
(drop
(i32.shr_s
(get_local $0)
(i32.const 19)
)
)
(drop
(i32.shr_u
(get_local $0)
(i32.const 19)
)
)
(drop
(i32.shr_u
(i32.shr_s
(get_local $0)
(i32.const 11)
)
(i32.const 200)
)
)
)
(func $sign-ext-ne (; 14 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.ne
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.ne
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.ne
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const 107)
)
)
(drop
(i32.ne
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const 111)
)
)
(drop
(i32.ne
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.and
(get_local $1)
(i32.const 255)
)
)
)
)
(func $sign-ext-eqz (; 15 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.eqz
(i32.and
(get_local $0)
(i32.const 255)
)
)
)
)
(func $sign-ext-boolean (; 16 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(if (result i32)
(i32.and
(get_local $0)
(i32.const 255)
)
(i32.const 100)
(i32.const 200)
)
)
)
(func $add-sub-zero (; 17 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(get_local $0)
)
(drop
(get_local $0)
)
)
(func $store-signext (; 18 ;) (type $5) (param $0 i32)
(i32.store8
(i32.const 8)
(get_local $0)
)
(i32.store8
(i32.const 8)
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 25)
)
(i32.const 25)
)
)
(i32.store8
(i32.const 8)
(get_local $0)
)
(i32.store16
(i32.const 8)
(get_local $0)
)
(i32.store16
(i32.const 8)
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 17)
)
(i32.const 17)
)
)
(i32.store16
(i32.const 8)
(get_local $0)
)
(i32.store
(i32.const 8)
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 16)
)
(i32.const 16)
)
)
(i32.store
(i32.const 8)
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 8)
)
(i32.const 8)
)
)
)
(func $sign-ext-tee (; 19 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.shr_s
(i32.shl
(tee_local $0
(i32.const 128)
)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(tee_local $0
(i32.const 127)
)
)
)
(func $sign-ext-load (; 20 ;) (type $4) (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
(tee_local $1
(i32.load8_s
(i32.const 1)
)
)
)
(drop
(i32.shr_s
(i32.shl
(tee_local $1
(i32.load8_u
(i32.const 1)
)
)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(i32.and
(tee_local $1
(i32.load8_s
(i32.const 1)
)
)
(i32.const 255)
)
)
(drop
(tee_local $1
(i32.load8_u
(i32.const 1)
)
)
)
)
(func $mask-bits (; 21 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(tee_local $0
(i32.const 127)
)
)
(drop
(tee_local $0
(i32.const 128)
)
)
(drop
(i32.and
(tee_local $0
(i32.const 128)
)
(i32.const 254)
)
)
(drop
(i32.and
(tee_local $0
(i32.const 128)
)
(i32.const 1279)
)
)
(drop
(i32.and
(tee_local $0
(i32.const 128)
)
(i32.const 1290)
)
)
(drop
(tee_local $0
(i32.const 128)
)
)
(drop
(tee_local $0
(i32.const 128)
)
)
(drop
(i32.and
(tee_local $0
(i32.const 128)
)
(i32.const 127)
)
)
)
(func $local-info-zero-ext (; 22 ;) (type $4) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
(local $w i32)
(set_local $x
(i32.const 212)
)
(drop
(get_local $x)
)
(set_local $y
(i32.const 500)
)
(drop
(i32.and
(get_local $y)
(i32.const 255)
)
)
(set_local $0
(i32.const 212)
)
(drop
(i32.and
(get_local $0)
(i32.const 255)
)
)
(set_local $z
(i32.const 212)
)
(set_local $z
(i32.const 220)
)
(drop
(get_local $z)
)
(set_local $w
(i32.const 212)
)
(set_local $w
(i32.const 1000)
)
(drop
(i32.and
(get_local $w)
(i32.const 255)
)
)
)
(func $local-info-sign-ext-bitsize (; 23 ;) (type $4) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
(local $w i32)
(set_local $x
(i32.const 127)
)
(drop
(get_local $x)
)
(set_local $y
(i32.const 128)
)
(drop
(i32.shr_s
(i32.shl
(get_local $y)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $0
(i32.const 127)
)
(drop
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $z
(i32.const 127)
)
(set_local $z
(i32.const 100)
)
(drop
(get_local $z)
)
(set_local $w
(i32.const 127)
)
(set_local $w
(i32.const 150)
)
(drop
(i32.shr_s
(i32.shl
(get_local $w)
(i32.const 24)
)
(i32.const 24)
)
)
)
(func $local-info-sign-ext-already-exted (; 24 ;) (type $4) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
(local $w i32)
(set_local $x
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(get_local $x)
)
(set_local $y
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 16)
)
(i32.const 16)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $y)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $0
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $z
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $z
(i32.shr_s
(i32.shl
(get_local $1)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(get_local $z)
)
(set_local $w
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $w
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 23)
)
(i32.const 24)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $w)
(i32.const 24)
)
(i32.const 24)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $0)
(i32.const 24)
)
(i32.const 23)
)
)
)
(func $signed-loads-fill-the-bits (; 25 ;) (type $3) (param $$e i32) (result i32)
(local $$0 i32)
(local $$conv i32)
(set_local $$0
(i32.load8_s
(i32.const 1024)
)
)
(set_local $$conv
(i32.and
(get_local $$0)
(i32.const 255)
)
)
(return
(i32.eq
(get_local $$conv)
(get_local $$e)
)
)
)
(func $local-info-sign-ext-already-exted-by-load (; 26 ;) (type $4) (param $0 i32) (param $1 i32)
(local $x i32)
(local $y i32)
(local $z i32)
(local $w i32)
(set_local $x
(i32.load8_s
(i32.const 1024)
)
)
(drop
(get_local $x)
)
(set_local $y
(i32.load8_u
(i32.const 1024)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $y)
(i32.const 24)
)
(i32.const 24)
)
)
(set_local $z
(i32.load16_s
(i32.const 1024)
)
)
(drop
(i32.shr_s
(i32.shl
(get_local $z)
(i32.const 24)
)
(i32.const 24)
)
)
)
(func $compare-load-s-sign-extend (; 27 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.eq
(i32.load8_u
(get_local $0)
)
(i32.and
(get_local $1)
(i32.const 255)
)
)
)
(drop
(i32.eq
(i32.and
(get_local $1)
(i32.const 255)
)
(i32.load8_u
(get_local $0)
)
)
)
(drop
(i32.eq
(i32.load8_u
(get_local $0)
)
(i32.shr_s
(i32.shl
(get_local $1)
(i32.const 24)
)
(i32.const 24)
)
)
)
(drop
(i32.eq
(i32.load8_s
(get_local $0)
)
(i32.shr_s
(i32.shl
(get_local $1)
(i32.const 16)
)
(i32.const 16)
)
)
)
(drop
(i32.eq
(i32.shr_s
(i32.shl
(get_local $1)
(i32.const 24)
)
(i32.const 24)
)
(i32.load8_u
(get_local $0)
)
)
)
(drop
(i32.eq
(i32.shr_s
(i32.shl
(get_local $1)
(i32.const 16)
)
(i32.const 16)
)
(i32.load8_s
(get_local $0)
)
)
)
)
(func $unsign-diff-sizes (; 28 ;) (type $6) (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 $6) (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 $1)
(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 $5) (param $x i32)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 65535)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const 127)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const -2147483648)
)
)
(drop
(i32.eq
(i32.and
(get_local $x)
(i32.const 255)
)
(i32.const 252)
)
)
)
(func $if-parallel (; 32 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.add
(get_local $1)
(i32.const 1)
)
)
(drop
(block (result i32)
(drop
(tee_local $0
(get_local $1)
)
)
(i32.add
(get_local $1)
(i32.const 1)
)
)
)
(drop
(block (result i32)
(i32.add
(get_local $1)
(unreachable)
)
)
)
(drop
(block (result i32)
(drop
(tee_local $0
(get_local $1)
)
)
(i32.add
(get_local $1)
(unreachable)
)
)
)
(drop
(if (result i32)
(unreachable)
(i32.add
(get_local $1)
(unreachable)
)
(i32.add
(get_local $1)
(unreachable)
)
)
)
)
(func $select-parallel (; 33 ;) (type $4) (param $0 i32) (param $1 i32)
(drop
(i32.add
(get_local $1)
(i32.const 1)
)
)
(drop
(select
(tee_local $0
(get_local $1)
)
(tee_local $0
(get_local $1)
)
(get_local $0)
)
)
(drop
(block (result i32)
(drop
(tee_local $0
(get_local $1)
)
)
(i32.add
(get_local $1)
(i32.const 1)
)
)
)
(drop
(select
(tee_local $0
(get_local $1)
)
(tee_local $0
(get_local $1)
)
(tee_local $0
(get_local $1)
)
)
)
(drop
(select
(tee_local $0
(get_local $1)
)
(tee_local $0
(get_local $1)
)
(unreachable)
)
)
)
(func $zero-shifts-is-not-sign-ext (; 34 ;) (type $1)
(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 $2) (result i32)
(return
(i32.eq
(i32.load16_s align=1
(i32.const 790656516)
)
(i32.const -1337)
)
)
)
(func $sign-ext-1-and-ne (; 36 ;) (type $2) (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 $2) (result i32)
(i32.and
(i32.shr_u
(i32.const -99)
(i32.const -32)
)
(i32.const 255)
)
)
(func $neg-shifts-and-255-b (; 38 ;) (type $2) (result i32)
(i32.and
(i32.shl
(i32.const -2349025)
(i32.const -32)
)
(i32.const 255)
)
)
(func $shifts-square-overflow (; 39 ;) (type $3) (param $x i32) (result i32)
(i32.shr_u
(i32.shr_u
(get_local $x)
(i32.const 65535)
)
(i32.const 32767)
)
)
(func $shifts-square-no-overflow-small (; 40 ;) (type $3) (param $x i32) (result i32)
(i32.shr_u
(get_local $x)
(i32.const 9)
)
)
(func $shifts-square-overflow-64 (; 41 ;) (type $7) (param $x i64) (result i64)
(i64.shr_u
(i64.shr_u
(get_local $x)
(i64.const 65535)
)
(i64.const 64767)
)
)
(func $shifts-square-no-overflow-small-64 (; 42 ;) (type $7) (param $x i64) (result i64)
(i64.shr_u
(get_local $x)
(i64.const 9)
)
)
(func $shifts-square-unreachable (; 43 ;) (type $3) (param $x i32) (result i32)
(i32.shr_u
(i32.shr_u
(unreachable)
(i32.const 1031)
)
(i32.const 4098)
)
)
(func $mix-shifts (; 44 ;) (type $2) (result i32)
(i32.shr_s
(i32.shl
(i32.const 23)
(i32.const -61)
)
(i32.const 168)
)
)
(func $actually-no-shifts (; 45 ;) (type $2) (result i32)
(i32.const 33)
)
(func $less-shifts-than-it-seems (; 46 ;) (type $3) (param $x i32) (result i32)
(i32.const 4800)
)
(func $and-popcount32 (; 47 ;) (type $2) (result i32)
(i32.and
(i32.popcnt
(i32.const -1)
)
(i32.const 31)
)
)
(func $and-popcount32-big (; 48 ;) (type $2) (result i32)
(i32.popcnt
(i32.const -1)
)
)
(func $and-popcount64 (; 49 ;) (type $8) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
)
(i64.const 63)
)
)
(func $and-popcount64-big (; 50 ;) (type $8) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
)
(i64.const 127)
)
)
(func $and-popcount64-bigger (; 51 ;) (type $8) (result i64)
(i64.and
(i64.popcnt
(i64.const -1)
)
(i64.const 255)
)
)
(func $optimizeAddedConstants-filters-through-nonzero (; 52 ;) (type $2) (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 $2) (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 $2) (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 $4) (param $x i32) (param $y i32)
(drop
(i32.eqz
(i32.or
(get_local $x)
(get_local $y)
)
)
)
(drop
(i32.or
(i32.eqz
(get_local $x)
)
(i32.eqz
(get_local $y)
)
)
)
(drop
(i32.xor
(i32.eqz
(get_local $x)
)
(i32.eqz
(get_local $y)
)
)
)
(drop
(i32.and
(i32.eqz
(get_local $x)
)
(get_local $y)
)
)
(drop
(i32.and
(get_local $x)
(i32.eqz
(get_local $y)
)
)
)
(drop
(i32.and
(i32.eqz
(get_local $x)
)
(i32.wrap/i64
(i64.const 2)
)
)
)
(drop
(i32.and
(i32.wrap/i64
(i64.const 1)
)
(i32.eqz
(get_local $y)
)
)
)
)
(func $subzero1 (; 56 ;) (type $3) (param $0 i32) (result i32)
(i32.sub
(i32.const 32)
(i32.clz
(get_local $0)
)
)
)
(func $subzero2 (; 57 ;) (type $3) (param $0 i32) (result i32)
(i32.sub
(i32.const 32)
(i32.clz
(get_local $0)
)
)
)
(func $subzero3 (; 58 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(i32.clz
(get_local $0)
)
)
)
(func $subzero4 (; 59 ;) (type $6) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(i32.clz
(get_local $1)
)
)
)
(func $mul-power-2 (; 60 ;) (type $3) (param $x i32) (result i32)
(drop
(call $mul-power-2
(i32.shl
(get_local $x)
(i32.const 2)
)
)
)
(drop
(call $mul-power-2
(i32.mul
(get_local $x)
(i32.const 5)
)
)
)
(drop
(call $mul-power-2
(get_local $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
(get_local $x)
(i32.const -1)
)
)
)
(drop
(call $mul-power-2
(i32.shl
(get_local $x)
(i32.const 31)
)
)
)
(unreachable)
)
(func $urem-power-2 (; 61 ;) (type $3) (param $x i32) (result i32)
(drop
(call $urem-power-2
(i32.and
(get_local $x)
(i32.const 3)
)
)
)
(drop
(call $urem-power-2
(i32.rem_u
(get_local $x)
(i32.const 5)
)
)
)
(drop
(call $urem-power-2
(i32.const 0)
)
)
(drop
(call $urem-power-2
(i32.rem_u
(get_local $x)
(i32.const 0)
)
)
)
(drop
(call $urem-power-2
(i32.rem_u
(get_local $x)
(i32.const -1)
)
)
)
(drop
(call $urem-power-2
(i32.and
(get_local $x)
(i32.const 2147483647)
)
)
)
(unreachable)
)
(func $orZero (; 62 ;) (type $3) (param $0 i32) (result i32)
(get_local $0)
)
(func $andZero (; 63 ;) (type $3) (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 $9) (param $x32 i32) (param $x64 i64) (param $y32 f32) (param $y64 f64)
(drop
(get_local $x32)
)
(drop
(get_local $x32)
)
(drop
(get_local $x32)
)
(drop
(get_local $x32)
)
(drop
(get_local $x64)
)
(drop
(get_local $x64)
)
(drop
(get_local $x64)
)
(drop
(get_local $x64)
)
(drop
(i32.const 0)
)
(drop
(i64.const 0)
)
(drop
(f32.mul
(get_local $y32)
(f32.const 0)
)
)
(drop
(f64.mul
(get_local $y64)
(f64.const 0)
)
)
(drop
(get_local $x32)
)
(drop
(get_local $x64)
)
(drop
(get_local $y32)
)
(drop
(get_local $y64)
)
(drop
(i32.const 0)
)
(drop
(i64.const 0)
)
(drop
(i32.and
(unreachable)
(i32.const 0)
)
)
(drop
(i64.and
(unreachable)
(i64.const 0)
)
)
(drop
(get_local $x32)
)
(drop
(get_local $x32)
)
(drop
(get_local $x64)
)
(drop
(get_local $x64)
)
(drop
(get_local $y32)
)
(drop
(get_local $y64)
)
(drop
(f32.div
(get_local $y32)
(f32.const 1.2000000476837158)
)
)
(drop
(i32.mul
(get_local $x32)
(i32.const -1)
)
)
(drop
(i64.mul
(get_local $x64)
(i64.const -1)
)
)
(drop
(f32.mul
(get_local $y32)
(f32.const -1)
)
)
(drop
(f64.mul
(get_local $y64)
(f64.const -1)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.const 10)
)
)
(drop
(i32.le_u
(i32.add
(get_local $x32)
(i32.const 10)
)
(i32.const 20)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.const 30)
)
)
(drop
(i64.eq
(get_local $x64)
(i64.const 10)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.const 10)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.add
(get_local $x32)
(i32.const 10)
)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.const 30)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.sub
(get_local $x32)
(i32.const 30)
)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.add
(get_local $x32)
(i32.const 30)
)
)
)
(drop
(i32.eq
(get_local $x32)
(i32.sub
(get_local $x32)
(i32.const 10)
)
)
)
(drop
(i64.le_s
(i64.sub
(get_local $x64)
(i64.const 288230376151711744)
)
(i64.const 9223372036854775807)
)
)
)
(func $negatives-are-sometimes-better (; 65 ;) (type $10) (param $x i32) (param $y i64) (param $z f32)
(drop
(i32.sub
(get_local $x)
(i32.const -64)
)
)
(drop
(i32.add
(get_local $x)
(i32.const -64)
)
)
(drop
(i32.sub
(get_local $x)
(i32.const -8192)
)
)
(drop
(i32.sub
(get_local $x)
(i32.const -1048576)
)
)
(drop
(i32.sub
(get_local $x)
(i32.const -134217728)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -64)
)
)
(drop
(i64.add
(get_local $y)
(i64.const -64)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -8192)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -1048576)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -134217728)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -17179869184)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -2199023255552)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -281474976710656)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -36028797018963968)
)
)
(drop
(i64.sub
(get_local $y)
(i64.const -4611686018427387904)
)
)
(drop
(f32.add
(get_local $z)
(f32.const 64)
)
)
)
(func $shift-a-zero (; 66 ;) (type $10) (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 $11) (param $x i32) (param $y i64) (param $z f64) (param $xx i32)
(drop
(i32.const 0)
)
(drop
(i64.const 0)
)
(drop
(f64.sub
(get_local $z)
(get_local $z)
)
)
(drop
(i32.sub
(get_local $x)
(get_local $xx)
)
)
(drop
(i32.sub
(unreachable)
(unreachable)
)
)
(drop
(i32.add
(get_local $x)
(get_local $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
(get_local $x)
)
(drop
(get_local $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
(get_local $y)
)
(drop
(get_local $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
(get_local $x)
)
(drop
(i32.const -1)
)
(drop
(i32.or
(tee_local $x
(i32.const 1337)
)
(i32.const -1)
)
)
(drop
(get_local $y)
)
(drop
(i64.const -1)
)
)
(func $xor (; 69 ;) (type $0) (param $x i32) (param $y i64)
(drop
(get_local $x)
)
)
(func $select-on-const (; 70 ;) (type $4) (param $x i32) (param $y i32)
(drop
(get_local $x)
)
(drop
(i32.const 3)
)
(drop
(tee_local $x
(i32.const 5)
)
)
(drop
(block (result i32)
(drop
(tee_local $x
(i32.const 6)
)
)
(i32.const 7)
)
)
(drop
(select
(i32.const 4)
(tee_local $x
(i32.const 5)
)
(i32.const 1)
)
)
(drop
(tee_local $x
(i32.const 6)
)
)
)
)
(module
(type $0 (func))
(import "env" "memory" (memory $0 (shared 256 256)))
(func $x (; 0 ;) (type $0)
(drop
(i32.shr_s
(i32.shl
(i32.atomic.load8_u
(i32.const 100)
)
(i32.const 24)
)
(i32.const 24)
)
)
)
)