; RUN: opt -mtriple x86_64-unknown-windows-msvc -objc-arc -o - %s | llvm-dis -o - - | FileCheck %s

target triple = "x86_64-unknown-windows-msvc"

declare i32 @__CxxFrameHandler3(...)

declare dllimport i8* @objc_msgSend(i8*, i8*, ...) local_unnamed_addr

declare dllimport i8* @objc_retain(i8* returned) local_unnamed_addr
declare dllimport void @objc_release(i8*) local_unnamed_addr
declare dllimport i8* @objc_retainAutoreleasedReturnValue(i8* returned) local_unnamed_addr

declare dllimport i8* @objc_begin_catch(i8*) local_unnamed_addr
declare dllimport void @objc_end_catch() local_unnamed_addr

@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [2 x i8] c"m\00", align 1
@OBJC_SELECTOR_REFERENCES_ = private externally_initialized global i8* getelementptr inbounds ([2 x i8], [2 x i8]* @OBJC_METH_VAR_NAME_, i64 0, i64 0), section ".objc_selrefs$B", align 8

define void @f(i8* %i) local_unnamed_addr personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
entry:
  %0 = tail call i8* @objc_retain(i8* %i)
  %1 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_, align 8, !invariant.load !0
  %call = invoke i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %0, i8* %1)
          to label %invoke.cont unwind label %catch.dispatch, !clang.arc.no_objc_arc_exceptions !0

catch.dispatch:                                   ; preds = %entry
  %2 = catchswitch within none [label %catch] unwind to caller

invoke.cont:                                      ; preds = %entry
  %3 = tail call i8* @objc_retainAutoreleasedReturnValue(i8* %call)
  tail call void @objc_release(i8* %3) #0, !clang.imprecise_release !0
  br label %eh.cont

eh.cont:                                          ; preds = %invoke.cont, %catch
  tail call void @objc_release(i8* %0) #0, !clang.imprecise_release !0
  ret void

catch:                                            ; preds = %catch.dispatch
  %4 = catchpad within %2 [i8* null, i32 0, i8* null]
  %exn.adjusted = tail call i8* @objc_begin_catch(i8* undef)
  tail call void @objc_end_catch(), !clang.arc.no_objc_arc_exceptions !0
  br label %eh.cont
}

; CHECK-LABEL: @f

; CHECK-NOT: tail call i8* @objc_retain(i8* %i)
; CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_, align 8

; CHECK: eh.cont:
; CHECK-NOT: call void @objc_release(i8*
; CHECK: ret void

attributes #0 = { nounwind }

!0 = !{}

