| // 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 : $() |
| } |
| |