// RUN: %swift -gnone -O -disable-legacy-type-info -target arm64-apple-ios7 -emit-assembly %s -o - | %FileCheck %s

// REQUIRES: CODEGENERATOR=AArch64
// REQUIRES: rdar49791522

// rdar://17999904

// No i386 test right now because we don't actually have a formal pattern there.

import Builtin

class C {}

sil_vtable C {}

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

sil public_external @foo : $@convention(thin) (@owned C) -> @autoreleased C
sil public_external @bar : $@convention(thin) (@owned C) -> ()

sil [ossa] @baz : $@convention(thin) (@owned C) -> () {
bb0(%0 : @owned $C):
  %1 = function_ref @foo : $@convention(thin) (@owned C) -> @autoreleased C
  %2 = apply %1(%0) : $@convention(thin) (@owned C) -> @autoreleased C

  // This call is just so that we won't tail-call
  // objc_retainAutoreleasedReturnValue, which complicates the test.
  %3 = function_ref @bar : $@convention(thin) (@owned C) -> ()
  apply %3(%2) : $@convention(thin) (@owned C) -> ()
  %5 = tuple ()
  return %5 : $()
}

// CHECK:       bl _foo
// CHECK-NEXT:  ; InlineAsm Start
// CHECK-NEXT:  mov {{x29|fp}}, {{x29|fp}}
// CHECK-NEXT:  ; InlineAsm End
// CHECK-NEXT:  bl _objc_retainAutoreleasedReturnValue

