// RUN: rm -rf %t && mkdir %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)?}} void @optional_objc_metatype(i64)
// x86_64:         icmp eq i64 %0, 0
// i386-LABEL:   define{{( protected)?}} void @optional_objc_metatype(i32)
// i386:           icmp eq i32 %0, 0
// arm64-LABEL:  define{{( protected)?}} void @optional_objc_metatype(i64)
// arm64:          icmp eq i64 %0, 0
// armv7-LABEL:  define{{( protected)?}} void @optional_objc_metatype(i32)
// armv7:           icmp eq i32 %0, 0
// armv7s-LABEL: define{{( protected)?}} void @optional_objc_metatype(i32)
// armv7s:          icmp eq i32 %0, 0
// armv7k-LABEL: define{{( protected)?}} 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)?}} void @optional_swift_metatype(i64)
// x86_64:           icmp eq i64 %0, 0
// i386-LABEL:   define{{( protected)?}} void @optional_swift_metatype(i32)
// i386:             icmp eq i32 %0, 0
// arm64-LABEL:  define{{( protected)?}} void @optional_swift_metatype(i64)
// arm64:            icmp eq i64 %0, 0
// armv7-LABEL:  define{{( protected)?}} void @optional_swift_metatype(i32)
// armv7:            icmp eq i32 %0, 0
// armv7s-LABEL: define{{( protected)?}} void @optional_swift_metatype(i32)
// armv7s:           icmp eq i32 %0, 0
// armv7k-LABEL: define{{( protected)?}} 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 : $()
}

