blob: 298b46de9e8917d85c90c6b7f12587a2743dd928 [file] [log] [blame] [edit]
(module
(type $i32_=>_none (func (param i32)))
(type $i32_=>_i32 (func (param i32) (result i32)))
(type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
(type $none_=>_i32_i64 (func (result i32 i64)))
(type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
(type $none_=>_v128 (func (result v128)))
(memory $0 10 10)
(func $basic (param $p i32)
(local $x i32)
(local.set $x
(i32.const 10)
)
(call $basic
(i32.const 20)
)
)
(func $split (param $p i32)
(local $x i32)
(if
(i32.const 1)
(local.set $x
(i32.const 10)
)
)
(call $basic
(i32.add
(local.get $x)
(local.get $x)
)
)
)
(func $split-but-join (param $p i32)
(local $x i32)
(if
(i32.const 1)
(local.set $x
(i32.const 10)
)
(local.set $x
(i32.const 10)
)
)
(call $basic
(i32.const 20)
)
)
(func $split-but-join-different (param $p i32)
(local $x i32)
(if
(i32.const 1)
(local.set $x
(i32.const 10)
)
(local.set $x
(i32.const 20)
)
)
(call $basic
(i32.add
(local.get $x)
(local.get $x)
)
)
)
(func $split-but-join-different-b (param $p i32)
(local $x i32)
(if
(i32.const 1)
(local.set $x
(i32.const 10)
)
(local.set $x
(local.get $p)
)
)
(call $basic
(i32.add
(local.get $x)
(local.get $x)
)
)
)
(func $split-but-join-init0 (param $p i32)
(local $x i32)
(if
(i32.const 1)
(local.set $x
(i32.const 0)
)
)
(call $basic
(i32.const 0)
)
)
(func $later (param $p i32)
(local $x i32)
(local.set $x
(i32.const 10)
)
(call $basic
(i32.const 20)
)
(local.set $x
(i32.const 22)
)
(call $basic
(i32.const 44)
)
(local.set $x
(i32.const 39)
)
)
(func $later2 (param $p i32) (result i32)
(local $x i32)
(local.set $x
(i32.const 10)
)
(local.set $x
(i32.const 20)
)
(i32.const 20)
)
(func $two-ways-but-identical (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(local.set $x
(i32.const 10)
)
(if
(i32.const 1)
(local.set $y
(i32.const 11)
)
(local.set $y
(i32.const 11)
)
)
(local.set $y
(i32.const 21)
)
(i32.const 21)
)
(func $two-ways-but-almost-identical (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(local.set $x
(i32.const 10)
)
(if
(i32.const 1)
(local.set $y
(i32.const 12)
)
(local.set $y
(i32.const 11)
)
)
(local.set $y
(i32.add
(i32.const 10)
(local.get $y)
)
)
(local.get $y)
)
(func $deadloop (param $p i32) (result i32)
(local $x i32)
(local $y i32)
(loop $loop
(local.set $x
(i32.const 0)
)
(local.set $y
(i32.const 0)
)
(br $loop)
)
)
(func $deadloop2 (param $p i32)
(local $x i32)
(local $y i32)
(loop $loop
(local.set $x
(i32.const 0)
)
(local.set $y
(i32.const 0)
)
(call $deadloop2
(i32.const 0)
)
(call $deadloop2
(i32.const 0)
)
(br $loop)
)
)
(func $deadloop3 (param $p i32)
(local $x i32)
(local $y i32)
(loop $loop
(local.set $x
(i32.const 0)
)
(local.set $y
(i32.const 0)
)
(call $deadloop2
(i32.const 0)
)
(call $deadloop2
(i32.const 0)
)
(br $loop)
)
)
(func $through-tee (param $x i32) (param $y i32) (result i32)
(local.set $x
(local.tee $y
(i32.const 7)
)
)
(return
(i32.const 14)
)
)
(func $through-tee-more (param $x i32) (param $y i32) (result i32)
(local.set $x
(i32.eqz
(local.tee $y
(i32.const 7)
)
)
)
(return
(i32.const 7)
)
)
(func $multipass (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(nop)
(nop)
(local.get $2)
)
(func $through-fallthrough (param $x i32) (param $y i32) (result i32)
(local.set $x
(block $block (result i32)
(nop)
(local.tee $y
(i32.const 7)
)
)
)
(return
(i32.const 14)
)
)
(func $simd-load (result v128)
(local $x v128)
(local.set $x
(v8x16.load_splat
(i32.const 0)
)
)
(local.get $x)
)
(func $tuple-local (result i32 i64)
(local $i32s (i32 i32))
(local $i64s (i64 i64))
(local.set $i32s
(tuple.make
(i32.const 42)
(i32.const 0)
)
)
(local.set $i64s
(tuple.make
(i64.const 42)
(i64.const 0)
)
)
(tuple.make
(i32.const 42)
(i64.const 0)
)
)
)