(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 $fimport$0 (result i32 i64)))
 (global $global$0 (mut i32) (i32.const 0))
 (global $global$1 (mut i64) (i64.const 0))
 (global $global$2 i32 (i32.const 0))
 (global $global$3 i64 (i64.const 0))
 (func $0 (result i32 i64 f32)
  (tuple.make
   (i32.const 42)
   (i64.const 7)
   (f32.const 13)
  )
 )
 (func $1 (result i32)
  (local $0 (i32 i64 f32))
  (local $1 i64)
  (local $2 i32)
  (local.set $0
   (call $0)
  )
  (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 $2 (result i64)
  (local $0 i64)
  (local $1 (i32 i64 f32))
  (local $2 i64)
  (local $3 i32)
  (local.set $1
   (call $0)
  )
  (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 $3 (result f32)
  (local $0 f32)
  (local $1 (i32 i64 f32))
  (local $2 i64)
  (local $3 i32)
  (local.set $1
   (call $0)
  )
  (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 $4 (result f32 i64 i32)
  (local $0 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 $0)
  )
  (local.set $0
   (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 $0)
    )
    (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 $0)
      )
      (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 $0)
    )
    (drop
     (block (result i64)
      (local.set $12
       (local.get $1)
      )
      (drop
       (local.get $3)
      )
      (local.get $12)
     )
    )
    (local.get $13)
   )
  )
 )
 (func $5 (result i64)
  (drop
   (i32.const 42)
  )
  (drop
   (i64.const 7)
  )
  (unreachable)
 )
 (func $6 (result i32 i64)
  (local $0 i32)
  (global.set $global$0
   (block (result i32)
    (local.set $0
     (i32.const 42)
    )
    (global.set $global$1
     (i64.const 7)
    )
    (local.get $0)
   )
  )
  (tuple.make
   (global.get $global$2)
   (global.get $global$3)
  )
 )
 (func $7
  (local $0 (i32 i64))
  (local $1 i32)
  (local.set $0
   (call $fimport$0)
  )
  (drop
   (block (result i32)
    (local.set $1
     (tuple.extract 0
      (local.get $0)
     )
    )
    (drop
     (tuple.extract 1
      (local.get $0)
     )
    )
    (local.get $1)
   )
  )
 )
 (func $8
  (local $0 i32)
  (drop
   (block (result i32)
    (local.set $0
     (i32.const 42)
    )
    (drop
     (i64.const 42)
    )
    (local.get $0)
   )
  )
 )
 (func $9
  (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 $10 (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $11 (result i32 i64)
  (return
   (tuple.make
    (i32.const 42)
    (i64.const 42)
   )
  )
 )
 (func $12 (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 $13 (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 $14 (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 $15 (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 $16 (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)
   )
  )
 )
)

