
======= wasm_to_wasm_function_returning_multiple_values/input.yul (Ewasm) =======

Pretty printed source:
object "object" {
    code {
        function main()
        {
            let m, n:i32, p:i32, q := multireturn(1:i32, 2, 3, 4:i32)
        }
        function multireturn(a:i32, b, c, d:i32) -> x, y:i32, z:i32, w
        {
            x := b
            w := c
            y := a
            z := d
        }
    }
}


Binary representation:
0061736d01000000010c0260000060047f7e7e7f017e020100030302000105030100010610037f0141000b7f0141000b7e0142000b071102066d656d6f72790200046d61696e00000a52022603017e027f017e024002404101420242034104100121002300210123012102230221030b0b0b2903017e027f017e0240200121042002210720002105200321060b20052400200624012007240220040b

Text representation:
(module
    (memory $memory (export "memory") 1)
    (export "main" (func $main))
    (global $global_ (mut i32) (i32.const 0))
    (global $global__1 (mut i32) (i32.const 0))
    (global $global__2 (mut i64) (i64.const 0))

(func $main
    (local $m i64)
    (local $n i32)
    (local $p i32)
    (local $q i64)
    (block $label_
        (block
            (local.set $m (call $multireturn (i32.const 1) (i64.const 2) (i64.const 3) (i32.const 4)))
            (local.set $n (global.get $global_))
            (local.set $p (global.get $global__1))
            (local.set $q (global.get $global__2))

        )

    )
)

(func $multireturn
    (param $a i32)
    (param $b i64)
    (param $c i64)
    (param $d i32)
    (result i64)
    (local $x i64)
    (local $y i32)
    (local $z i32)
    (local $w i64)
    (block $label__3
        (local.set $x (local.get $b))
        (local.set $w (local.get $c))
        (local.set $y (local.get $a))
        (local.set $z (local.get $d))

    )
    (global.set $global_ (local.get $y))
    (global.set $global__1 (local.get $z))
    (global.set $global__2 (local.get $w))
    (local.get $x)
)

)
