assemblyscript/tests/compiler/builtins.untouched.wat
Daniel Wirtz 164f134053
Even more math (#56)
Remaining implementations of JavaScript's Math functions (except sin/cos/tan), both double (Math) and single (Mathf) precision, ported from musl incl. tests from libc-test, plus some changes to match JS semantics. Also binds fmod to `%` and pow to `**`.
2018-03-30 17:25:54 +02:00

2289 lines
30 KiB
Plaintext

(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $v (func))
(type $f (func (result f32)))
(type $F (func (result f64)))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $builtins/b (mut i32) (i32.const 0))
(global $builtins/i (mut i32) (i32.const 0))
(global $builtins/I (mut i64) (i64.const 0))
(global $builtins/f (mut f32) (f32.const 0))
(global $builtins/F (mut f64) (f64.const 0))
(global $builtins/constantOffset i32 (i32.const 8))
(global $builtins/u (mut i32) (i32.const 0))
(global $builtins/U (mut i64) (i64.const 0))
(global $builtins/s (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 40))
(memory $0 1)
(data (i32.const 4) "\0b\00\00\00b\00u\00i\00l\00t\00i\00n\00s\00.\00t\00s\00")
(data (i32.const 32) "\01\00\00\001\00")
(export "test" (func $builtins/test))
(export "memory" (memory $0))
(start $start)
(func $builtins/test (; 1 ;) (type $v)
)
(func $start (; 2 ;) (type $v)
(local $0 i32)
(local $1 i32)
(local $2 i64)
(local $3 i64)
(local $4 f32)
(local $5 f64)
(if
(i32.eqz
(i32.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 5)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 6)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 7)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 8)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 9)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 10)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 11)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 12)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.const 1)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 13)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 14)
(i32.const 0)
)
(unreachable)
)
)
(drop
(i32.clz
(i32.const 1)
)
)
(drop
(i32.ctz
(i32.const 1)
)
)
(drop
(i32.popcnt
(i32.const 1)
)
)
(drop
(i32.rotl
(i32.const 1)
(i32.const 1)
)
)
(drop
(i32.rotr
(i32.const 1)
(i32.const 1)
)
)
(drop
(select
(tee_local $0
(i32.const -42)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
(i32.gt_s
(get_local $0)
(i32.const 0)
)
)
)
(drop
(select
(tee_local $0
(i32.const 1)
)
(tee_local $1
(i32.const 2)
)
(i32.gt_s
(get_local $0)
(get_local $1)
)
)
)
(drop
(select
(tee_local $0
(i32.const 1)
)
(tee_local $1
(i32.const 2)
)
(i32.lt_s
(get_local $0)
(get_local $1)
)
)
)
(set_global $builtins/i
(i32.clz
(i32.const 1)
)
)
(set_global $builtins/i
(i32.ctz
(i32.const 1)
)
)
(set_global $builtins/i
(i32.popcnt
(i32.const 1)
)
)
(set_global $builtins/i
(i32.rotl
(i32.const 1)
(i32.const 1)
)
)
(set_global $builtins/i
(i32.rotr
(i32.const 1)
(i32.const 1)
)
)
(set_global $builtins/i
(select
(tee_local $0
(i32.const -42)
)
(i32.sub
(i32.const 0)
(get_local $0)
)
(i32.gt_s
(get_local $0)
(i32.const 0)
)
)
)
(if
(i32.eqz
(i32.eq
(get_global $builtins/i)
(i32.const 42)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 34)
(i32.const 19)
)
(unreachable)
)
)
(set_global $builtins/i
(select
(tee_local $0
(i32.const 1)
)
(tee_local $1
(i32.const 2)
)
(i32.gt_s
(get_local $0)
(get_local $1)
)
)
)
(if
(i32.eqz
(i32.eq
(get_global $builtins/i)
(i32.const 2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 35)
(i32.const 20)
)
(unreachable)
)
)
(set_global $builtins/i
(select
(tee_local $0
(i32.const 1)
)
(tee_local $1
(i32.const 2)
)
(i32.lt_s
(get_local $0)
(get_local $1)
)
)
)
(if
(i32.eqz
(i32.eq
(get_global $builtins/i)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 36)
(i32.const 20)
)
(unreachable)
)
)
(drop
(i64.clz
(i64.const 1)
)
)
(drop
(i64.ctz
(i64.const 1)
)
)
(drop
(i64.popcnt
(i64.const 1)
)
)
(drop
(i64.rotl
(i64.const 1)
(i64.const 1)
)
)
(drop
(i64.rotr
(i64.const 1)
(i64.const 1)
)
)
(drop
(select
(tee_local $2
(i64.const -42)
)
(i64.sub
(i64.const 0)
(get_local $2)
)
(i64.gt_s
(get_local $2)
(i64.const 0)
)
)
)
(set_global $builtins/I
(i64.clz
(i64.const 1)
)
)
(set_global $builtins/I
(i64.ctz
(i64.const 1)
)
)
(set_global $builtins/I
(i64.popcnt
(i64.const 1)
)
)
(set_global $builtins/I
(i64.rotl
(i64.const 1)
(i64.const 1)
)
)
(set_global $builtins/I
(i64.rotr
(i64.const 1)
(i64.const 1)
)
)
(set_global $builtins/I
(select
(tee_local $2
(i64.const -42)
)
(i64.sub
(i64.const 0)
(get_local $2)
)
(i64.gt_s
(get_local $2)
(i64.const 0)
)
)
)
(if
(i32.eqz
(i64.eq
(get_global $builtins/I)
(i64.const 42)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 52)
(i32.const 19)
)
(unreachable)
)
)
(set_global $builtins/I
(select
(tee_local $2
(i64.const 1)
)
(tee_local $3
(i64.const 2)
)
(i64.gt_s
(get_local $2)
(get_local $3)
)
)
)
(if
(i32.eqz
(i64.eq
(get_global $builtins/I)
(i64.const 2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 53)
(i32.const 20)
)
(unreachable)
)
)
(set_global $builtins/I
(select
(tee_local $2
(i64.const 1)
)
(tee_local $3
(i64.const 2)
)
(i64.lt_s
(get_local $2)
(get_local $3)
)
)
)
(if
(i32.eqz
(i32.eq
(get_global $builtins/i)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 54)
(i32.const 20)
)
(unreachable)
)
)
(drop
(f32.const nan:0x400000)
)
(drop
(f32.const inf)
)
(drop
(f32.abs
(f32.const 1.25)
)
)
(drop
(f32.ceil
(f32.const 1.25)
)
)
(drop
(f32.copysign
(f32.const 1.25)
(f32.const 2.5)
)
)
(drop
(f32.floor
(f32.const 1.25)
)
)
(drop
(f32.max
(f32.const 1.25)
(f32.const 2.5)
)
)
(drop
(f32.min
(f32.const 1.25)
(f32.const 2.5)
)
)
(drop
(f32.nearest
(f32.const 1.25)
)
)
(drop
(f32.sqrt
(f32.const 1.25)
)
)
(drop
(f32.trunc
(f32.const 1.25)
)
)
(drop
(f32.ne
(tee_local $4
(f32.const 1.25)
)
(get_local $4)
)
)
(drop
(select
(f32.ne
(f32.abs
(tee_local $4
(f32.const 1.25)
)
)
(f32.const inf)
)
(i32.const 0)
(f32.eq
(get_local $4)
(get_local $4)
)
)
)
(set_global $builtins/f
(f32.const nan:0x400000)
)
(set_global $builtins/f
(f32.const inf)
)
(set_global $builtins/f
(f32.abs
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.ceil
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.copysign
(f32.const 1.25)
(f32.const 2.5)
)
)
(set_global $builtins/f
(f32.floor
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.max
(f32.const 1.25)
(f32.const 2.5)
)
)
(set_global $builtins/f
(f32.min
(f32.const 1.25)
(f32.const 2.5)
)
)
(set_global $builtins/f
(f32.nearest
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.sqrt
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.trunc
(f32.const 1.25)
)
)
(set_global $builtins/b
(f32.ne
(tee_local $4
(f32.const 1.25)
)
(get_local $4)
)
)
(set_global $builtins/b
(select
(f32.ne
(f32.abs
(tee_local $4
(f32.const 1.25)
)
)
(f32.const inf)
)
(i32.const 0)
(f32.eq
(get_local $4)
(get_local $4)
)
)
)
(drop
(f64.const nan:0x8000000000000)
)
(drop
(f64.const inf)
)
(drop
(f64.const nan:0x8000000000000)
)
(drop
(f64.const inf)
)
(drop
(f64.abs
(f64.const 1.25)
)
)
(drop
(f64.ceil
(f64.const 1.25)
)
)
(drop
(f64.copysign
(f64.const 1.25)
(f64.const 2.5)
)
)
(drop
(f64.floor
(f64.const 1.25)
)
)
(drop
(f64.max
(f64.const 1.25)
(f64.const 2.5)
)
)
(drop
(f64.min
(f64.const 1.25)
(f64.const 2.5)
)
)
(drop
(f64.nearest
(f64.const 1.25)
)
)
(drop
(f64.sqrt
(f64.const 1.25)
)
)
(drop
(f64.trunc
(f64.const 1.25)
)
)
(drop
(f64.ne
(tee_local $5
(f64.const 1.25)
)
(get_local $5)
)
)
(drop
(select
(f64.ne
(f64.abs
(tee_local $5
(f64.const 1.25)
)
)
(f64.const inf)
)
(i32.const 0)
(f64.eq
(get_local $5)
(get_local $5)
)
)
)
(set_global $builtins/F
(f64.const nan:0x8000000000000)
)
(set_global $builtins/F
(f64.const inf)
)
(set_global $builtins/F
(f64.abs
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.ceil
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.copysign
(f64.const 1.25)
(f64.const 2.5)
)
)
(set_global $builtins/F
(f64.floor
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.max
(f64.const 1.25)
(f64.const 2.5)
)
)
(set_global $builtins/F
(f64.min
(f64.const 1.25)
(f64.const 2.5)
)
)
(set_global $builtins/F
(f64.nearest
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.sqrt
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.trunc
(f64.const 1.25)
)
)
(set_global $builtins/b
(f64.ne
(tee_local $5
(f64.const 1.25)
)
(get_local $5)
)
)
(set_global $builtins/b
(select
(f64.ne
(f64.abs
(tee_local $5
(f64.const 1.25)
)
)
(f64.const inf)
)
(i32.const 0)
(f64.eq
(get_local $5)
(get_local $5)
)
)
)
(set_global $builtins/i
(i32.load
(i32.const 8)
)
)
(i32.store
(i32.const 8)
(get_global $builtins/i)
)
(i32.store
(i32.const 8)
(i32.load
(i32.const 8)
)
)
(set_global $builtins/I
(i64.load
(i32.const 8)
)
)
(i64.store
(i32.const 8)
(get_global $builtins/I)
)
(i64.store
(i32.const 8)
(i64.load
(i32.const 8)
)
)
(set_global $builtins/f
(f32.load
(i32.const 8)
)
)
(f32.store
(i32.const 8)
(get_global $builtins/f)
)
(f32.store
(i32.const 8)
(f32.load
(i32.const 8)
)
)
(set_global $builtins/F
(f64.load
(i32.const 8)
)
)
(f64.store
(i32.const 8)
(get_global $builtins/F)
)
(f64.store
(i32.const 8)
(f64.load
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load offset=8
(i32.const 0)
)
)
(i32.store offset=8
(i32.const 0)
(get_global $builtins/i)
)
(i32.store offset=8
(i32.const 0)
(i32.load offset=8
(i32.const 0)
)
)
(set_global $builtins/I
(i64.load offset=8
(i32.const 0)
)
)
(i64.store offset=8
(i32.const 0)
(get_global $builtins/I)
)
(i64.store offset=8
(i32.const 0)
(i64.load offset=8
(i32.const 0)
)
)
(set_global $builtins/f
(f32.load offset=8
(i32.const 0)
)
)
(f32.store offset=8
(i32.const 0)
(get_global $builtins/f)
)
(f32.store offset=8
(i32.const 0)
(f32.load offset=8
(i32.const 0)
)
)
(set_global $builtins/F
(f64.load offset=8
(i32.const 0)
)
)
(f64.store offset=8
(i32.const 0)
(get_global $builtins/F)
)
(f64.store offset=8
(i32.const 0)
(f64.load offset=8
(i32.const 0)
)
)
(set_global $builtins/i
(i32.load8_s
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load16_s
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load8_u
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load16_u
(i32.const 8)
)
)
(set_global $builtins/i
(i32.load
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load8_u
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load16_u
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load8_s
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load16_s
(i32.const 8)
)
)
(set_global $builtins/u
(i32.load
(i32.const 8)
)
)
(set_global $builtins/I
(i64.load8_s
(i32.const 8)
)
)
(set_global $builtins/I
(i64.load16_s
(i32.const 8)
)
)
(set_global $builtins/I
(i64.load32_s
(i32.const 8)
)
)
(set_global $builtins/I
(i64.load
(i32.const 8)
)
)
(set_global $builtins/U
(i64.load8_u
(i32.const 8)
)
)
(set_global $builtins/U
(i64.load16_u
(i32.const 8)
)
)
(set_global $builtins/U
(i64.load32_u
(i32.const 8)
)
)
(set_global $builtins/U
(i64.load
(i32.const 8)
)
)
(i32.store8
(i32.const 8)
(i32.const 1)
)
(i32.store16
(i32.const 8)
(i32.const 1)
)
(i32.store
(i32.const 8)
(i32.const 1)
)
(i64.store8
(i32.const 8)
(i64.const 1)
)
(i64.store16
(i32.const 8)
(i64.const 1)
)
(i64.store32
(i32.const 8)
(i64.const 1)
)
(i64.store
(i32.const 8)
(i64.const 1)
)
(i64.store
(i32.const 8)
(i64.extend_s/i32
(i32.const 1)
)
)
(drop
(i32.reinterpret/f32
(f32.const 1.25)
)
)
(drop
(f32.reinterpret/i32
(i32.const 25)
)
)
(drop
(i64.reinterpret/f64
(f64.const 1.25)
)
)
(drop
(f64.reinterpret/i64
(i64.const 25)
)
)
(set_global $builtins/i
(i32.reinterpret/f32
(f32.const 1.25)
)
)
(set_global $builtins/f
(f32.reinterpret/i32
(i32.const 25)
)
)
(set_global $builtins/I
(i64.reinterpret/f64
(f64.const 1.25)
)
)
(set_global $builtins/F
(f64.reinterpret/i64
(i64.const 25)
)
)
(drop
(current_memory)
)
(drop
(grow_memory
(i32.const 1)
)
)
(set_global $builtins/s
(current_memory)
)
(set_global $builtins/s
(grow_memory
(i32.const 1)
)
)
(drop
(select
(i32.const 10)
(i32.const 20)
(i32.const 1)
)
)
(drop
(select
(i64.const 100)
(i64.const 200)
(i32.const 0)
)
)
(drop
(select
(f32.const 1.25)
(f32.const 2.5)
(i32.const 1)
)
)
(drop
(select
(f64.const 12.5)
(f64.const 25)
(i32.const 0)
)
)
(set_global $builtins/i
(select
(i32.const 10)
(i32.const 20)
(i32.const 1)
)
)
(set_global $builtins/I
(select
(i64.const 100)
(i64.const 200)
(i32.const 0)
)
)
(set_global $builtins/f
(select
(f32.const 1.25)
(f32.const 2.5)
(i32.const 1)
)
)
(set_global $builtins/F
(select
(f64.const 12.5)
(f64.const 25)
(i32.const 0)
)
)
(if
(i32.eqz
(get_global $builtins/i)
)
(unreachable)
)
(if
(i32.eqz
(i32.eq
(i32.const 1)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 220)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 2)
(i32.const 2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 221)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 222)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 8)
(i32.const 8)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 223)
(i32.const 0)
)
(unreachable)
)
)
(drop
(i32.const 4)
)
(if
(i32.eqz
(i32.eq
(i32.const 1)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 225)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 1)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 226)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 2)
(i32.const 2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 227)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 228)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 8)
(i32.const 8)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 229)
(i32.const 0)
)
(unreachable)
)
)
(drop
(i32.const 4)
)
(if
(i32.eqz
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 231)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 8)
(i32.const 8)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 232)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 235)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 236)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 237)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 2)
(i32.const 2)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 238)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 240)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 8)
(i32.const 8)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 241)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.ne
(f64.const nan:0x8000000000000)
(f64.const nan:0x8000000000000)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 243)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.ne
(tee_local $4
(f32.const nan:0x400000)
)
(get_local $4)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 244)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.ne
(tee_local $5
(f64.const nan:0x8000000000000)
)
(get_local $5)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 245)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(select
(f32.ne
(f32.abs
(tee_local $4
(f32.const nan:0x400000)
)
)
(f32.const inf)
)
(i32.const 0)
(f32.eq
(get_local $4)
(get_local $4)
)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 246)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(select
(f32.ne
(f32.abs
(tee_local $4
(f32.const inf)
)
)
(f32.const inf)
)
(i32.const 0)
(f32.eq
(get_local $4)
(get_local $4)
)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 247)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(select
(f64.ne
(f64.abs
(tee_local $5
(f64.const nan:0x8000000000000)
)
)
(f64.const inf)
)
(i32.const 0)
(f64.eq
(get_local $5)
(get_local $5)
)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 248)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eqz
(select
(f64.ne
(f64.abs
(tee_local $5
(f64.const inf)
)
)
(f64.const inf)
)
(i32.const 0)
(f64.eq
(get_local $5)
(get_local $5)
)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 249)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(select
(f32.ne
(f32.abs
(tee_local $4
(f32.const 0)
)
)
(f32.const inf)
)
(i32.const 0)
(f32.eq
(get_local $4)
(get_local $4)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 250)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(select
(f64.ne
(f64.abs
(tee_local $5
(f64.const 0)
)
)
(f64.const inf)
)
(i32.const 0)
(f64.eq
(get_local $5)
(get_local $5)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 251)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const -128)
(i32.shr_s
(i32.shl
(i32.const 128)
(i32.const 24)
)
(i32.const 24)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 264)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 127)
(i32.const 127)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 265)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const -32768)
(i32.shr_s
(i32.shl
(i32.const 32768)
(i32.const 16)
)
(i32.const 16)
)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 266)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 32767)
(i32.const 32767)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 267)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const -2147483648)
(i32.const -2147483648)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 268)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 2147483647)
(i32.const 2147483647)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 269)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i64.eq
(i64.const -9223372036854775808)
(i64.const -9223372036854775808)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 270)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i64.eq
(i64.const 9223372036854775807)
(i64.const 9223372036854775807)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 271)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 273)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 255)
(i32.const 255)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 274)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 275)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 65535)
(i32.const 65535)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 276)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 277)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const -1)
(i32.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 278)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i64.eq
(i64.const 0)
(i64.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 279)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i64.eq
(i64.const -1)
(i64.const -1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 280)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 281)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 0)
(i32.const 0)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 281)
(i32.const 29)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 1)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 282)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(i32.eq
(i32.const 1)
(i32.const 1)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 282)
(i32.const 29)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.eq
(f32.const -3402823466385288598117041e14)
(f32.const -3402823466385288598117041e14)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 284)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.eq
(f32.const 3402823466385288598117041e14)
(f32.const 3402823466385288598117041e14)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 285)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.eq
(f32.const -16777215)
(f32.const -16777215)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 286)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.eq
(f32.const 16777215)
(f32.const 16777215)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 287)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f32.eq
(f32.const 1.1920928955078125e-07)
(f32.const 1.1920928955078125e-07)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 288)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.eq
(f64.const -1797693134862315708145274e284)
(f64.const -1797693134862315708145274e284)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 289)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.eq
(f64.const 1797693134862315708145274e284)
(f64.const 1797693134862315708145274e284)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 290)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.eq
(f64.const -9007199254740991)
(f64.const -9007199254740991)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 291)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.eq
(f64.const 9007199254740991)
(f64.const 9007199254740991)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 292)
(i32.const 0)
)
(unreachable)
)
)
(if
(i32.eqz
(f64.eq
(f64.const 2.220446049250313e-16)
(f64.const 2.220446049250313e-16)
)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 293)
(i32.const 0)
)
(unreachable)
)
)
(drop
(f64.ne
(tee_local $5
(f64.const 1)
)
(get_local $5)
)
)
)
)