blob: 926d10f24f700829062aefdbb63c148c391d7ec0 [file] [log] [blame]
// RUN: %empty-directory(%t)
// RUN: %build-irgen-test-overlays
// RUN: %target-swift-frontend -sdk %S/Inputs -I %t -emit-ir %s | %FileCheck %s --check-prefix=%target-cpu
// REQUIRES: objc_interop
import Builtin
import Swift
import gizmo
// x86_64-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i64)
// x86_64: icmp eq i64 %0, 0
// i386-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i32)
// i386: icmp eq i32 %0, 0
// arm64-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i64)
// arm64: icmp eq i64 %0, 0
// armv7-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i32)
// armv7: icmp eq i32 %0, 0
// armv7s-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i32)
// armv7s: icmp eq i32 %0, 0
// armv7k-LABEL: define{{( protected)?}} swiftcc void @optional_objc_metatype(i32)
// armv7k: icmp eq i32 %0, 0
sil @optional_objc_metatype : $@convention(thin) (Optional<@objc_metatype Gizmo.Type>) -> () {
bb0(%0 : $Optional<@objc_metatype Gizmo.Type>):
switch_enum %0 : $Optional<@objc_metatype Gizmo.Type>, case #Optional.some!enumelt.1: some, case #Optional.none!enumelt: none
some(%m : $@objc_metatype Gizmo.Type):
br cont
none:
br cont
cont:
return undef : $()
}
// x86_64-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i64)
// x86_64: icmp eq i64 %0, 0
// i386-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i32)
// i386: icmp eq i32 %0, 0
// arm64-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i64)
// arm64: icmp eq i64 %0, 0
// armv7-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i32)
// armv7: icmp eq i32 %0, 0
// armv7s-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i32)
// armv7s: icmp eq i32 %0, 0
// armv7k-LABEL: define{{( protected)?}} swiftcc void @optional_swift_metatype(i32)
// armv7k: icmp eq i32 %0, 0
sil @optional_swift_metatype : $@convention(thin) (Optional<@thick Gizmo.Type>) -> () {
bb0(%0 : $Optional<@thick Gizmo.Type>):
switch_enum %0 : $Optional<@thick Gizmo.Type>, case #Optional.some!enumelt.1: some, case #Optional.none!enumelt: none
some(%m : $@thick Gizmo.Type):
br cont
none:
br cont
cont:
return undef : $()
}