// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -emit-ir %s | %FileCheck %s

// REQUIRES: CPU=x86_64

sil_stage canonical

import Builtin
import Swift

class C {
  required init()
}

sil @_TFC12dynamic_init1CCfMS0_FT_S0_ : $@convention(method) (@thick C.Type) -> @owned C
sil @_TFC12dynamic_init1CcfMS0_FT_S0_ : $@convention(method) (@owned C) -> @owned C
sil @_TFC12dynamic_init1Cd : $@convention(method) (@owned C) -> @owned Builtin.NativeObject
sil @_TFC12dynamic_init1CD : $@convention(method) (@owned C) -> ()

// CHECK-LABEL: define{{( protected)?}} swiftcc void @_TF12dynamic_init15testDynamicInitFT2cmMCS_1C_T_
sil @_TF12dynamic_init15testDynamicInitFT2cmMCS_1C_T_ : $@convention(method) (@thick C.Type) -> () {
bb0(%0 : $@thick C.Type):
  // CHECK:   [[META:%[0-9]+]] = bitcast %swift.type* %0 to %T12dynamic_init1CC* (%swift.type*)**
  // CHECK:   [[VTABLE_OFFSET:%[0-9]+]] = getelementptr inbounds %T12dynamic_init1CC* (%swift.type*)*, %T12dynamic_init1CC* (%swift.type*)** [[META]], i64 10
  // CHECK:   [[CTOR:%[0-9]+]] = load %T12dynamic_init1CC* (%swift.type*)*, %T12dynamic_init1CC* (%swift.type*)** [[VTABLE_OFFSET]], align 8
  // CHECK:   [[CTOR_I8:%[0-9]+]] = bitcast %T12dynamic_init1CC* (%swift.type*)* [[CTOR]] to i8*
  // CHECK:   [[CTOR_FN:%[0-9]+]] = bitcast i8* [[CTOR_I8]] to %T12dynamic_init1CC* (%swift.type*)*
  %2 = class_method %0 : $@thick C.Type, #C.init!allocator.1 : (C.Type) -> () -> C, $@convention(method) (@thick C.Type) -> @owned C
  // CHECK:   [[RESULT:%[0-9]+]] = call swiftcc %T12dynamic_init1CC* [[CTOR_FN]](%swift.type* swiftself %0)
  %3 = apply %2(%0) : $@convention(method) (@thick C.Type) -> @owned C
  // CHECK:   call void bitcast (void (%swift.refcounted*)* @swift_rt_swift_release to void (%T12dynamic_init1CC*)*)(%T12dynamic_init1CC* [[RESULT]])
  strong_release %3 : $C
  // CHECK: ret void
  %5 = tuple ()
  return %5 : $()
}

sil_vtable C {
  #C.init!allocator.1: _TFC12dynamic_init1CCfMS0_FT_S0_ // dynamic_init.C.__allocating_init (dynamic_init.C.Type)() -> dynamic_init.C
}
