// REQUIRES: CPU=x86_64
// REQUIRES: OS=macosx

// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_struct.swiftmodule -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_enum.swiftmodule -module-name=resilient_enum -I %t %S/../Inputs/resilient_enum.swift
// RUN: %target-swift-frontend -I %t -emit-ir -enable-resilience %s | %FileCheck %s

sil_stage canonical

import Swift
import resilient_struct

public enum EnumWithClassArchetypeAndDynamicSize<T : AnyObject> {
  case A(T)
  case B(Size)
}

// CHECK-LABEL: define swiftcc void @copyDynamicMultiEnum(%swift.type* %"EnumWithClassArchetypeAndDynamicSize<T>", %swift.type* %U, %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* noalias nocapture swiftself)
// CHECK: call %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* @"$s20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeOyxGRlzCr0_lWOc"(%T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* %0, %T20archetype_resilience36EnumWithClassArchetypeAndDynamicSizeO* {{.*}}, %swift.type* %"EnumWithClassArchetypeAndDynamicSize<T>")
// CHECK: ret void
sil [ossa] @copyDynamicMultiEnum : $@convention(method) <T, U where T: AnyObject> (@in_guaranteed EnumWithClassArchetypeAndDynamicSize<T>) -> () {
bb0(%0 : $*EnumWithClassArchetypeAndDynamicSize<T>):
  %1 = alloc_stack $EnumWithClassArchetypeAndDynamicSize<T> 
  copy_addr %0 to [initialization] %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
  dealloc_stack %1 : $*EnumWithClassArchetypeAndDynamicSize<T>
  %ret = tuple ()
  return %ret : $()
}
