(module
 (type $none_=>_i32_i64 (func (result i32 i64)))
 (type $none_=>_none (func))
 (type $none_=>_i64 (func (result i64)))
 (type $none_=>_f32_i64_i32 (func (result f32 i64 i32)))
 (type $none_=>_i32_i64_externref (func (result i32 i64 externref)))
 (type $none_=>_i32_i64_f32 (func (result i32 i64 f32)))
 (type $none_=>_i32 (func (result i32)))
 (type $none_=>_f32 (func (result f32)))
 (import "env" "pair" (func $pair (type $none_=>_i32_i64) (result i32 i64)))
 (global $g1 (mut (i32 i64)) (tuple.make
  (i32.const 0)
  (i64.const 0)
 ))
 (global $g2 (i32 i64) (tuple.make
  (i32.const 0)
  (i64.const 0)
 ))
 (func $triple (type $none_=>_i32_i64_f32) (result i32 i64 f32)
  (tuple.make
   (i32.const 42)
   (i64.const 7)
   (f32.const 13)
  )
 )
 (func $get-first (type $none_=>_i32) (result i32)
  (tuple.extract 0
   (call $triple)
  )
 )
 (func $get-second (type $none_=>_i64) (result i64)
  (tuple.extract 1
   (call $triple)
  )
 )
 (func $get-third (type $none_=>_f32) (result f32)
  (tuple.extract 2
   (call $triple)
  )
 )
 (func $reverse (type $none_=>_f32_i64_i32) (result f32 i64 i32)
  (local $x (i32 i64 f32))
  (local.set $x
   (call $triple)
  )
  (tuple.make
   (tuple.extract 2
    (local.get $x)
   )
   (tuple.extract 1
    (local.get $x)
   )
   (tuple.extract 0
    (local.get $x)
   )
  )
 )
 (func $unreachable (type $none_=>_i64) (result i64)
  (tuple.extract 1
   (tuple.make
    (i32.const 42)
    (i64.const 7)
    (unreachable)
   )
  )
 )
 (func $global (type $none_=>_i32_i64) (result i32 i64)
  (global.set $g1
   (tuple.make
    (i32.const 42)
    (i64.const 7)
   )
  )
  (global.get $g2)
 )
 (func $drop-call (type $none_=>_none)
  (drop
   (call $pair)
  )
 )
 (func $drop-tuple-make (type $none_=>_none)
  (drop
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $drop-block (type $none_=>_none)
  (drop
   (block $block (result i32 i64)
    (tuple.make
     (i32.const 42)
     (i64.const 42)
    )
   )
  )
 )
 (func $mv-return (type $none_=>_i32_i64) (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $mv-return-in-block (type $none_=>_i32_i64) (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $mv-block-break (type $none_=>_i32_i64) (result i32 i64)
  (block $l (result i32 i64)
   (br $l
    (tuple.make
     (i32.const 42)
     (i64.const 42)
    )
   )
  )
 )
 (func $mv-block-br-if (type $none_=>_i32_i64) (result i32 i64)
  (block $l (result i32 i64)
   (br_if $l
    (tuple.make
     (i32.const 42)
     (i64.const 42)
    )
    (i32.const 1)
   )
  )
 )
 (func $mv-if (type $none_=>_i32_i64_externref) (result i32 i64 externref)
  (if (result i32 i64 externref)
   (i32.const 1)
   (tuple.make
    (i32.const 42)
    (i64.const 42)
    (ref.null noextern)
   )
   (tuple.make
    (i32.const 42)
    (i64.const 42)
    (ref.null noextern)
   )
  )
 )
 (func $mv-loop (type $none_=>_i32_i64) (result i32 i64)
  (loop $loop-in (result i32 i64)
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $mv-switch (type $none_=>_i32_i64) (result i32 i64)
  (block $a (result i32 i64)
   (block $b (result i32 i64)
    (br_table $a $b
     (tuple.make
      (i32.const 42)
      (i64.const 42)
     )
     (i32.const 0)
    )
   )
  )
 )
)
