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

