(module
 (type $none_=>_i32_i64 (func (result i32 i64)))
 (type $none_=>_none (func))
 (type $none_=>_i32_i64_externref (func (result i32 i64 externref)))
 (type $none_=>_i64 (func (result i64)))
 (type $none_=>_f32_i64_i32 (func (result f32 i64 i32)))
 (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 (result i32 i64)))
 (global $g1 (mut i32) (i32.const 0))
 (global $g2 (mut i64) (i64.const 0))
 (global $global$2 i32 (i32.const 0))
 (global $global$3 i64 (i64.const 0))
 (func $triple (result i32 i64 f32)
  (tuple.make
   (i32.const 42)
   (i64.const 7)
   (f32.const 13)
  )
 )
 (func $get-first (result i32)
  (local $0 (i32 i64 f32))
  (local $1 i64)
  (local $2 i32)
  (local.set $0
   (call $triple)
  )
  (block (result i32)
   (local.set $2
    (tuple.extract 0
     (local.get $0)
    )
   )
   (drop
    (block (result i64)
     (local.set $1
      (tuple.extract 1
       (local.get $0)
      )
     )
     (drop
      (tuple.extract 2
       (local.get $0)
      )
     )
     (local.get $1)
    )
   )
   (local.get $2)
  )
 )
 (func $get-second (result i64)
  (local $0 i64)
  (local $1 (i32 i64 f32))
  (local $2 i64)
  (local $3 i32)
  (local.set $1
   (call $triple)
  )
  (drop
   (block (result i32)
    (local.set $3
     (tuple.extract 0
      (local.get $1)
     )
    )
    (local.set $0
     (block (result i64)
      (local.set $2
       (tuple.extract 1
        (local.get $1)
       )
      )
      (drop
       (tuple.extract 2
        (local.get $1)
       )
      )
      (local.get $2)
     )
    )
    (local.get $3)
   )
  )
  (local.get $0)
 )
 (func $get-third (result f32)
  (local $0 f32)
  (local $1 (i32 i64 f32))
  (local $2 i64)
  (local $3 i32)
  (local.set $1
   (call $triple)
  )
  (drop
   (block (result i32)
    (local.set $3
     (tuple.extract 0
      (local.get $1)
     )
    )
    (drop
     (block (result i64)
      (local.set $2
       (tuple.extract 1
        (local.get $1)
       )
      )
      (local.set $0
       (tuple.extract 2
        (local.get $1)
       )
      )
      (local.get $2)
     )
    )
    (local.get $3)
   )
  )
  (local.get $0)
 )
 (func $reverse (result f32 i64 i32)
  (local $x i32)
  (local $1 i64)
  (local $2 i64)
  (local $3 f32)
  (local $4 f32)
  (local $5 (i32 i64 f32))
  (local $6 i64)
  (local $7 i32)
  (local $8 i64)
  (local $9 i32)
  (local $10 i64)
  (local $11 i32)
  (local $12 i64)
  (local $13 i32)
  (local $14 f32)
  (local.set $5
   (call $triple)
  )
  (local.set $x
   (block (result i32)
    (local.set $7
     (tuple.extract 0
      (local.get $5)
     )
    )
    (local.set $1
     (block (result i64)
      (local.set $6
       (tuple.extract 1
        (local.get $5)
       )
      )
      (local.set $3
       (tuple.extract 2
        (local.get $5)
       )
      )
      (local.get $6)
     )
    )
    (local.get $7)
   )
  )
  (drop
   (block (result i32)
    (local.set $9
     (local.get $x)
    )
    (drop
     (block (result i64)
      (local.set $8
       (local.get $1)
      )
      (local.set $4
       (local.get $3)
      )
      (local.get $8)
     )
    )
    (local.get $9)
   )
  )
  (tuple.make
   (block (result f32)
    (local.set $14
     (local.get $4)
    )
    (drop
     (block (result i32)
      (local.set $11
       (local.get $x)
      )
      (local.set $2
       (block (result i64)
        (local.set $10
         (local.get $1)
        )
        (drop
         (local.get $3)
        )
        (local.get $10)
       )
      )
      (local.get $11)
     )
    )
    (local.get $14)
   )
   (local.get $2)
   (block (result i32)
    (local.set $13
     (local.get $x)
    )
    (drop
     (block (result i64)
      (local.set $12
       (local.get $1)
      )
      (drop
       (local.get $3)
      )
      (local.get $12)
     )
    )
    (local.get $13)
   )
  )
 )
 (func $unreachable (result i64)
  (drop
   (i32.const 42)
  )
  (drop
   (i64.const 7)
  )
  (unreachable)
 )
 (func $global (result i32 i64)
  (local $0 i32)
  (global.set $g1
   (block (result i32)
    (local.set $0
     (i32.const 42)
    )
    (global.set $g2
     (i64.const 7)
    )
    (local.get $0)
   )
  )
  (tuple.make
   (global.get $global$2)
   (global.get $global$3)
  )
 )
 (func $drop-call
  (local $0 (i32 i64))
  (local $1 i32)
  (local.set $0
   (call $pair)
  )
  (drop
   (block (result i32)
    (local.set $1
     (tuple.extract 0
      (local.get $0)
     )
    )
    (drop
     (tuple.extract 1
      (local.get $0)
     )
    )
    (local.get $1)
   )
  )
 )
 (func $drop-tuple-make
  (local $0 i32)
  (drop
   (block (result i32)
    (local.set $0
     (i32.const 42)
    )
    (drop
     (i64.const 42)
    )
    (local.get $0)
   )
  )
 )
 (func $drop-block
  (local $0 (i32 i64))
  (local $1 i32)
  (local.set $0
   (block $label$1 (result i32 i64)
    (tuple.make
     (i32.const 42)
     (i64.const 42)
    )
   )
  )
  (drop
   (block (result i32)
    (local.set $1
     (tuple.extract 0
      (local.get $0)
     )
    )
    (drop
     (tuple.extract 1
      (local.get $0)
     )
    )
    (local.get $1)
   )
  )
 )
 (func $mv-return (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $mv-return-in-block (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $mv-block-break (result i32 i64)
  (local $0 (i32 i64))
  (local.set $0
   (block $label$1 (result i32 i64)
    (br $label$1
     (tuple.make
      (i32.const 42)
      (i64.const 42)
     )
    )
   )
  )
  (tuple.make
   (tuple.extract 0
    (local.get $0)
   )
   (tuple.extract 1
    (local.get $0)
   )
  )
 )
 (func $mv-block-br-if (result i32 i64)
  (local $0 (i32 i64))
  (local $1 (i32 i64))
  (local.set $1
   (block $label$1 (result i32 i64)
    (local.set $0
     (br_if $label$1
      (tuple.make
       (i32.const 42)
       (i64.const 42)
      )
      (i32.const 1)
     )
    )
    (tuple.make
     (tuple.extract 0
      (local.get $0)
     )
     (tuple.extract 1
      (local.get $0)
     )
    )
   )
  )
  (tuple.make
   (tuple.extract 0
    (local.get $1)
   )
   (tuple.extract 1
    (local.get $1)
   )
  )
 )
 (func $mv-if (result i32 i64 externref)
  (local $0 (i32 i64 externref))
  (local.set $0
   (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)
    )
   )
  )
  (tuple.make
   (tuple.extract 0
    (local.get $0)
   )
   (tuple.extract 1
    (local.get $0)
   )
   (tuple.extract 2
    (local.get $0)
   )
  )
 )
 (func $mv-loop (result i32 i64)
  (local $0 (i32 i64))
  (local.set $0
   (loop $label$1 (result i32 i64)
    (tuple.make
     (i32.const 42)
     (i64.const 42)
    )
   )
  )
  (tuple.make
   (tuple.extract 0
    (local.get $0)
   )
   (tuple.extract 1
    (local.get $0)
   )
  )
 )
 (func $mv-switch (result i32 i64)
  (local $0 (i32 i64))
  (local $1 (i32 i64))
  (local.set $1
   (block $label$1 (result i32 i64)
    (local.set $0
     (block $label$2 (result i32 i64)
      (br_table $label$1 $label$2
       (tuple.make
        (i32.const 42)
        (i64.const 42)
       )
       (i32.const 0)
      )
     )
    )
    (tuple.make
     (tuple.extract 0
      (local.get $0)
     )
     (tuple.extract 1
      (local.get $0)
     )
    )
   )
  )
  (tuple.make
   (tuple.extract 0
    (local.get $1)
   )
   (tuple.extract 1
    (local.get $1)
   )
  )
 )
)

