// RUN: %swift -gnone -O -target armv7-apple-ios7 -emit-assembly %s -o - | %FileCheck %s

// REQUIRES: CODEGENERATOR=ARM

// 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 @_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 @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 {{r7|fp}}, {{r7|fp}}
// sometimes:   .code 32
// CHECK:       @ InlineAsm End
// CHECK-NEXT:  bl _objc_retainAutoreleasedReturnValue
