// RUN: %target-swift-frontend %s -emit-silgen -verify

sil_stage raw

import Swift

sil @use_int : $@convention(thin) (Int) -> ()
sil @use_float : $@convention(thin) (Float) -> ()

sil @once_signature : $@yield_once () -> (@yields Int, @yields Float) {
bb0:
  %0 = tuple ()
  return %0 : $()
}

sil @many_signature : $@yield_many () -> (@yields Int, @yields Float) {
bb0:
  %0 = tuple ()
  return %0 : $()
}

sil @yield : $@yield_once (Int, Float) -> (@yields Int, @yields Float) {
bb0(%0 : $Int, %1 : $Float):
  yield (%0 : $Int, %1 : $Float), resume bb1, unwind bb2

bb1:
  %r = tuple ()
  return %r : $()

bb2:
  unwind
}

sil @yield_many : $@yield_many (Int, Float) -> (@yields Int, @yields Float) {
bb0(%0 : $Int, %1 : $Float):
  yield (%0 : $Int, %1 : $Float), resume bb1, unwind bb3

bb1:
  yield (%0 : $Int, %1 : $Float), resume bb2, unwind bb4

bb2:
  %r = tuple ()
  return %r : $()

bb3:
  unwind

bb4:
  unwind
}

sil @begin_apply : $(Int, Float) -> () {
bb0(%0 : $Int, %1 : $Float):
  %coro = function_ref @yield : $@convention(thin) @yield_once (Int, Float) -> (@yields Int, @yields Float)
  (%int, %float, %token) = begin_apply %coro(%0, %1) : $@convention(thin) @yield_once (Int, Float) -> (@yields Int, @yields Float)

  end_apply %token
  %r = tuple ()
  return %r : $()
}
