// RUN: %target-sil-opt -assume-parsing-unqualified-ownership-sil -enable-sil-verify-all -inline %s | %FileCheck %s

// Check if cloning of init_existential_* works correctly with multiple
// conformances.

sil_stage canonical

import Builtin

protocol ClassProto1 : class {
}

protocol ClassProto2 : class {
}

class MyClass : ClassProto1, ClassProto2 {
}

protocol Proto1 {
}

protocol Proto2 {
}

class MyClass2 : Proto1, Proto2 {
}

// CHECK-LABEL: sil @test_ref
sil @test_ref : $@convention(thin) (@guaranteed MyClass) -> () {
bb0(%0 : $MyClass):
  %6 = init_existential_ref %0 : $MyClass : $MyClass, $ClassProto1 & ClassProto2
  %11 = tuple ()
  return %11 : $()
}

// CHECK-LABEL: sil @call_test_ref
// CHECK: init_existential_ref
sil @call_test_ref : $@convention(thin) (@guaranteed MyClass) -> () {
bb0(%0 : $MyClass):
  %1 = function_ref @test_ref : $@convention(thin) (@guaranteed MyClass) -> ()
  %3 = apply %1(%0) : $@convention(thin) (@guaranteed MyClass) -> ()
  return %3 : $()
}


// CHECK-LABEL: sil @test_addr
sil @test_addr : $@convention(thin) (@guaranteed MyClass2) -> @out Proto1 & Proto2 {
bb0(%0 : $*Proto1 & Proto2, %1 : $MyClass2):
  %3 = init_existential_addr %0 : $*Proto1 & Proto2, $MyClass2
  store %1 to %3 : $*MyClass2
  %5 = tuple ()
  return %5 : $()
}

// CHECK-LABEL: sil @call_test_addr
// CHECK: init_existential_addr
sil @call_test_addr : $@convention(thin) (@guaranteed MyClass2) -> @out Proto1 & Proto2 {
bb0(%0 : $*Proto1 & Proto2, %1 : $MyClass2):
  %3 = function_ref @test_addr : $@convention(thin) (@guaranteed MyClass2) -> @out Proto1 & Proto2
  %5 = apply %3(%0, %1) : $@convention(thin) (@guaranteed MyClass2) -> @out Proto1 & Proto2
  %7 = tuple ()
  return %7 : $()
}

