// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -emit-ir | %FileCheck -check-prefix=%target-cpu %s
// REQUIRES: objc_interop

// rdar://16565958

import Builtin
import Swift

// x86_64: [[OBJC:%objc_object]] = type
// armv7:  [[OBJC:%objc_object]] = type
// armv7s: [[OBJC:%objc_object]] = type
// armv7k: [[OBJC:%objc_object]] = type
// arm64:  [[OBJC:%objc_object]] = type
// i386:   [[OBJC:%objc_object]] = type

class C {}
sil_vtable C {}
sil @_TFC11autorelease1Cd : $@convention(method) (@owned C) -> @owned Builtin.NativeObject {
bb0(%0 : $C):
  %1 = unchecked_ref_cast %0 : $C to $Builtin.NativeObject // user: %2
  return %1 : $Builtin.NativeObject              // id: %2
}

sil @foo : $@convention(thin) (@owned C?) -> @autoreleased C? {
bb0(%0 : $C?):
  return %0 : $C?
}
// x86_64:    define{{( protected)?}} i64 @foo(i64) {{.*}} {
// x86_64:      [[T0:%.*]] = tail call i64 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i64 (i64)*)(i64 %0)
// x86_64-NEXT: ret i64 [[T0]]

// i386:     define{{( protected)?}} i32 @foo(i32) {{.*}} {
// i386:       [[T0:%.*]] = tail call i32 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i32 (i32)*)(i32 %0)
// i386-NEXT:  ret i32 [[T0]]

// arm64:    define{{( protected)?}} i64 @foo(i64) {{.*}} {
// arm64:      [[T0:%.*]] = tail call i64 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i64 (i64)*)(i64 %0)
// arm64-NEXT: ret i64 [[T0]]

// armv7:    define{{( protected)?}} i32 @foo(i32) {{.*}} {
// armv7:      [[T0:%.*]] = tail call i32 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i32 (i32)*)(i32 %0)
// armv7-NEXT: ret i32 [[T0]]

// armv7s:    define{{( protected)?}} i32 @foo(i32) {{.*}} {
// armv7s:      [[T0:%.*]] = tail call i32 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i32 (i32)*)(i32 %0)
// armv7s-NEXT: ret i32 [[T0]]

// armv7k:    define{{( protected)?}} i32 @foo(i32) {{.*}} {
// armv7k:      [[T0:%.*]] = tail call i32 bitcast ([[OBJC]]* ([[OBJC]]*)* @objc_autoreleaseReturnValue to i32 (i32)*)(i32 %0)
// armv7k-NEXT: ret i32 [[T0]]

sil @bar : $@convention(thin) (@owned C?) -> @owned C? {
bb0(%0 : $C?):
  %1 = function_ref @foo : $@convention(thin) (@owned C?) -> @autoreleased C?
  %2 = apply %1(%0) : $@convention(thin) (@owned C?) -> @autoreleased C?
  return %2 : $C?
}
// x86_64:    define{{( protected)?}} i64 @bar(i64)
// x86_64:      [[T0:%.*]] = call i64 @foo(i64 %0)
// x86_64-NEXT: [[T1:%.*]] = inttoptr i64 [[T0]] to i8*
// x86_64-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// x86_64-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i64
// x86_64-NEXT: ret i64 [[T3]]

// i386:    define{{( protected)?}} i32 @bar(i32)
// i386:      [[T0:%.*]] = call i32 @foo(i32 %0)
// i386-NEXT: [[T1:%.*]] = inttoptr i32 [[T0]] to i8*
// i386-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// i386-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i32
// i386-NEXT: ret i32 [[T3]]

// arm64:    define{{( protected)?}} i64 @bar(i64)
// arm64:      [[T0:%.*]] = call i64 @foo(i64 %0)
// arm64-NEXT: call void asm sideeffect "mov
// arm64-NEXT: [[T1:%.*]] = inttoptr i64 [[T0]] to i8*
// arm64-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// arm64-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i64
// arm64-NEXT: ret i64 [[T3]]

// armv7:    define{{( protected)?}} i32 @bar(i32)
// armv7:      [[T0:%.*]] = call i32 @foo(i32 %0)
// armv7-NEXT: call void asm sideeffect "mov
// armv7-NEXT: [[T1:%.*]] = inttoptr i32 [[T0]] to i8*
// armv7-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// armv7-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i32
// armv7-NEXT: ret i32 [[T3]]

// armv7s:    define{{( protected)?}} i32 @bar(i32)
// armv7s:      [[T0:%.*]] = call i32 @foo(i32 %0)
// armv7s-NEXT: call void asm sideeffect "mov
// armv7s-NEXT: [[T1:%.*]] = inttoptr i32 [[T0]] to i8*
// armv7s-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// armv7s-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i32
// armv7s-NEXT: ret i32 [[T3]]

// armv7k:    define{{( protected)?}} i32 @bar(i32)
// armv7k:      [[T0:%.*]] = call i32 @foo(i32 %0)
// armv7k-NEXT: call void asm sideeffect "mov
// armv7k-NEXT: [[T1:%.*]] = inttoptr i32 [[T0]] to i8*
// armv7k-NEXT: [[T2:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T1]])
// armv7k-NEXT: [[T3:%.*]] = ptrtoint i8* [[T2]] to i32
// armv7k-NEXT: ret i32 [[T3]]
