blob: 2813c63418e9a5e9bc35a4344210ffff1da13c08 [file] [log] [blame]
(module
(type $none_=>_none (func))
(type $none_=>_i32 (func (result i32)))
(type $f32_=>_none (func (param f32)))
(type $f64_=>_none (func (param f64)))
(type $i64_=>_i64 (func (param i64) (result i64)))
(type $i32_=>_none (func (param i32)))
(type $i32_i32_i32_f64_=>_none (func (param i32 i32 i32 f64)))
(type $i32_i64_f64_=>_none (func (param i32 i64 f64)))
(type $i64_=>_none (func (param i64)))
(type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32)))
(type $f64_i64_i32_=>_none (func (param f64 i64 i32)))
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(type $none_=>_i64 (func (result i64)))
(type $i64_i64_=>_i64 (func (param i64 i64) (result i64)))
(type $f32_=>_f32 (func (param f32) (result f32)))
(import "env" "memory" (memory $memory 256 256))
(data (global.get $__memory_base) "wasm-only.asm.js")
(import "env" "table" (table $table 3 3 funcref))
(elem (global.get $__table_base) $legalfunc$illegalImport $_fabsf $legalfunc$do_i64)
(import "env" "__memory_base" (global $__memory_base i32))
(import "env" "__table_base" (global $__table_base i32))
(import "env" "_fabsf" (func $_fabsf (param f32) (result f32)))
(import "env" "setTempRet0" (func $setTempRet0 (param i32)))
(import "env" "illegalImport" (func $legalimport$illegalImport (param f64 i32 i32 i32)))
(import "env" "getTempRet0" (func $getTempRet0 (result i32)))
(import "env" "illegalImportResult" (func $legalimport$illegalImportResult (result i32)))
(import "env" "do_i64" (func $legalimport$do_i64 (result i32)))
(export "test64" (func $test64))
(export "illegalParam" (func $legalstub$illegalParam))
(export "illegalResult" (func $legalstub$illegalResult))
(export "keepAlive" (func $keepAlive))
(func $loads (; has Stack IR ;)
(drop
(i32.load8_s
(i32.const 100)
)
)
(drop
(i32.load8_s
(i32.const 101)
)
)
(drop
(i32.load16_s
(i32.const 102)
)
)
(drop
(i32.load16_s
(i32.const 103)
)
)
(drop
(i32.load16_s align=1
(i32.const 104)
)
)
(drop
(i32.load16_s
(i32.const 105)
)
)
(drop
(i32.load
(i32.const 106)
)
)
(drop
(i32.load
(i32.const 107)
)
)
(drop
(i32.load align=1
(i32.const 108)
)
)
(drop
(i32.load align=2
(i32.const 109)
)
)
(drop
(i32.load
(i32.const 110)
)
)
(drop
(f32.load
(i32.const 111)
)
)
(drop
(f32.load
(i32.const 112)
)
)
(drop
(f32.load align=1
(i32.const 113)
)
)
(drop
(f32.load align=2
(i32.const 114)
)
)
(drop
(f32.load
(i32.const 115)
)
)
(drop
(f64.load
(i32.const 116)
)
)
(drop
(f64.load
(i32.const 117)
)
)
(drop
(f64.load align=1
(i32.const 118)
)
)
(drop
(f64.load align=2
(i32.const 119)
)
)
(drop
(f64.load align=4
(i32.const 120)
)
)
(drop
(f64.load
(i32.const 121)
)
)
)
(func $stores (; has Stack IR ;)
(i32.store8
(i32.const 100)
(i32.const 0)
)
(i32.store8
(i32.const 101)
(i32.const 0)
)
(i32.store16
(i32.const 102)
(i32.const 0)
)
(i32.store16
(i32.const 103)
(i32.const 0)
)
(i32.store16 align=1
(i32.const 104)
(i32.const 0)
)
(i32.store16
(i32.const 105)
(i32.const 0)
)
(i32.store
(i32.const 106)
(i32.const 0)
)
(i32.store
(i32.const 107)
(i32.const 0)
)
(i32.store align=1
(i32.const 108)
(i32.const 0)
)
(i32.store align=2
(i32.const 109)
(i32.const 0)
)
(i32.store
(i32.const 110)
(i32.const 0)
)
(f32.store
(i32.const 111)
(f32.const 0)
)
(f32.store
(i32.const 112)
(f32.const 0)
)
(f32.store align=1
(i32.const 113)
(f32.const 0)
)
(f32.store align=2
(i32.const 114)
(f32.const 0)
)
(f32.store
(i32.const 115)
(f32.const 0)
)
(f64.store
(i32.const 116)
(f64.const 0)
)
(f64.store
(i32.const 117)
(f64.const 0)
)
(f64.store align=1
(i32.const 118)
(f64.const 0)
)
(f64.store align=2
(i32.const 119)
(f64.const 0)
)
(f64.store align=4
(i32.const 120)
(f64.const 0)
)
(f64.store
(i32.const 121)
(f64.const 0)
)
)
(func $i64s-div (; has Stack IR ;) (param $0 i64) (param $1 i64) (result i64)
(if (result i64)
(i64.eqz
(local.get $1)
)
(i64.const 0)
(if (result i64)
(i32.and
(i64.eq
(local.get $0)
(i64.const -9223372036854775808)
)
(i64.eq
(local.get $1)
(i64.const -1)
)
)
(i64.const 0)
(i64.div_s
(local.get $0)
(local.get $1)
)
)
)
)
(func $f32-to-int64 (; has Stack IR ;) (param $0 f32)
(drop
(if (result i64)
(f32.ne
(local.get $0)
(local.get $0)
)
(i64.const -9223372036854775808)
(if (result i64)
(f32.ge
(local.get $0)
(f32.const 9223372036854775808)
)
(i64.const -9223372036854775808)
(if (result i64)
(f32.le
(local.get $0)
(f32.const -9223372036854775808)
)
(i64.const -9223372036854775808)
(i64.trunc_f32_s
(local.get $0)
)
)
)
)
)
)
(func $f64-to-int64 (; has Stack IR ;) (param $0 f64)
(drop
(if (result i64)
(f64.ne
(local.get $0)
(local.get $0)
)
(i64.const -9223372036854775808)
(if (result i64)
(f64.ge
(local.get $0)
(f64.const 9223372036854775808)
)
(i64.const -9223372036854775808)
(if (result i64)
(f64.le
(local.get $0)
(f64.const -9223372036854775808)
)
(i64.const -9223372036854775808)
(i64.trunc_f64_s
(local.get $0)
)
)
)
)
)
)
(func $f32-to-uint64 (; has Stack IR ;) (param $0 f32)
(drop
(if (result i64)
(f32.ne
(local.get $0)
(local.get $0)
)
(i64.const 0)
(if (result i64)
(f32.ge
(local.get $0)
(f32.const 18446744073709551615)
)
(i64.const 0)
(if (result i64)
(f32.le
(local.get $0)
(f32.const -1)
)
(i64.const 0)
(i64.trunc_f32_u
(local.get $0)
)
)
)
)
)
)
(func $f64-to-uint64 (; has Stack IR ;) (param $0 f64)
(drop
(if (result i64)
(f64.ne
(local.get $0)
(local.get $0)
)
(i64.const 0)
(if (result i64)
(f64.ge
(local.get $0)
(f64.const 18446744073709551615)
)
(i64.const 0)
(if (result i64)
(f64.le
(local.get $0)
(f64.const -1)
)
(i64.const 0)
(i64.trunc_f64_u
(local.get $0)
)
)
)
)
)
)
(func $test64 (; has Stack IR ;)
(local $0 i64)
(local $1 f32)
(local $2 f64)
(drop
(i64.rem_s
(i64.rem_u
(call $i64s-div
(i64.const 100)
(i64.const 128849018897)
)
(i64.const 128849018897)
)
(i64.const 128849018897)
)
)
(drop
(i64.load
(i32.const 120)
)
)
(drop
(i64.load
(i32.const 120)
)
)
(drop
(i64.load align=2
(i32.const 120)
)
)
(drop
(i64.load align=4
(i32.const 120)
)
)
(i64.store
(i32.const 120)
(local.tee $0
(i64.load
(i32.const 120)
)
)
)
(i64.store
(i32.const 120)
(local.get $0)
)
(i64.store align=2
(i32.const 120)
(local.get $0)
)
(i64.store align=4
(i32.const 120)
(local.get $0)
)
(i64.store
(i32.const 120)
(local.get $0)
)
(call $f32-to-int64
(local.tee $1
(f32.convert_i64_u
(local.tee $0
(i64.extend_i32_u
(i32.wrap_i64
(local.get $0)
)
)
)
)
)
)
(call $f64-to-int64
(local.tee $2
(f64.convert_i64_u
(local.get $0)
)
)
)
(call $f32-to-uint64
(local.get $1)
)
(call $f64-to-uint64
(local.get $2)
)
)
(func $imports (; has Stack IR ;)
(call $legalfunc$illegalImport
(f64.const -3.13159)
(i64.const 94489280523)
(i32.const -33)
)
(drop
(i64.or
(i64.extend_i32_u
(call $legalimport$illegalImportResult)
)
(i64.shl
(i64.extend_i32_u
(call $getTempRet0)
)
(i64.const 32)
)
)
)
)
(func $arg (; has Stack IR ;) (param $0 i64)
(i64.store
(i32.const 100)
(local.get $0)
)
(call $arg
(local.get $0)
)
)
(func $illegalParam (; has Stack IR ;) (param $0 i32) (param $1 i64) (param $2 f64)
(i32.store
(i32.const 50)
(local.get $0)
)
(i64.store
(i32.const 100)
(local.get $1)
)
(f64.store
(i32.const 200)
(local.get $2)
)
(call $illegalParam
(i32.const 0)
(local.get $1)
(f64.const 12.34)
)
)
(func $call1 (; has Stack IR ;) (param $0 i64) (result i64)
(call $call1
(local.get $0)
)
)
(func $call2 (; has Stack IR ;) (param $0 i64) (result i64)
(drop
(call $call2
(call $call2
(local.get $0)
)
)
)
(i64.const 245127260211081)
)
(func $ifValue64 (; has Stack IR ;)
(drop
(call $call2
(i64.const 0)
)
)
)
(func $ifValue32 (; has Stack IR ;) (param $0 i32) (param $1 i32) (result i32)
(call $ifValue32
(local.get $0)
(local.get $1)
)
)
(func $unreachable_leftovers (; has Stack IR ;)
(i32.store
(i32.const 0)
(i32.const -2)
)
)
(func $keepAlive (; has Stack IR ;)
(call $loads)
(call $loads)
(call $stores)
(call $stores)
(call $imports)
(call $imports)
(call $arg
(i64.const 0)
)
(call $arg
(i64.const 0)
)
(drop
(call $call1
(i64.const 0)
)
)
(drop
(call $call1
(i64.const 0)
)
)
(drop
(call $call2
(i64.const 0)
)
)
(drop
(call $call2
(i64.const 0)
)
)
(call $ifValue64)
(call $ifValue64)
(drop
(call $ifValue32
(i32.const 0)
(i32.const 0)
)
)
(drop
(call $ifValue32
(i32.const 0)
(i32.const 0)
)
)
(call $unreachable_leftovers)
(call $unreachable_leftovers)
)
(func $legalstub$illegalParam (; has Stack IR ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 f64)
(call $illegalParam
(local.get $0)
(i64.or
(i64.extend_i32_u
(local.get $1)
)
(i64.shl
(i64.extend_i32_u
(local.get $2)
)
(i64.const 32)
)
)
(local.get $3)
)
)
(func $legalstub$illegalResult (; has Stack IR ;) (result i32)
(call $setTempRet0
(i32.const 2)
)
(i32.const 1)
)
(func $legalfunc$illegalImport (; has Stack IR ;) (param $0 f64) (param $1 i64) (param $2 i32)
(call $legalimport$illegalImport
(local.get $0)
(i32.wrap_i64
(local.get $1)
)
(i32.wrap_i64
(i64.shr_u
(local.get $1)
(i64.const 32)
)
)
(local.get $2)
)
)
(func $legalfunc$do_i64 (; has Stack IR ;) (result i64)
(i64.or
(i64.extend_i32_u
(call $legalimport$do_i64)
)
(i64.shl
(i64.extend_i32_u
(call $getTempRet0)
)
(i64.const 32)
)
)
)
)