// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s

// REQUIRES: CPU=x86_64

sil_stage canonical

import Builtin
import Swift

class C {
  required init()
}

sil @$s12dynamic_init1CCACycACmcfC : $@convention(method) (@thick C.Type) -> @owned C
sil @$s12dynamic_init1CCACycACmcfc : $@convention(method) (@owned C) -> @owned C
sil @$s12dynamic_init1CCfd : $@convention(method) (@owned C) -> @owned Builtin.NativeObject
sil @$s12dynamic_init1CCfD : $@convention(method) (@owned C) -> ()

// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @"$s12dynamic_init15testDynamicInityAA1CCm2cm_tF"
sil @$s12dynamic_init15testDynamicInityAA1CCm2cm_tF : $@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
  %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]](%swift.type* swiftself %0)
  %3 = apply %2(%0) : $@convention(method) (@thick C.Type) -> @owned C
  // CHECK:   call void bitcast (void (%swift.refcounted*)* @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: @$s12dynamic_init1CCACycACmcfC // dynamic_init.C.__allocating_init (dynamic_init.C.Type)() -> dynamic_init.C
}
