; RUN: %swift-llvm-opt -swift-arc-contract %s | FileCheck %s

target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-macosx10.9"

%swift.refcounted = type { %swift.heapmetadata*, i64 }
%swift.heapmetadata = type { i64 (%swift.refcounted*)*, i64 (%swift.refcounted*)* }
%swift.bridge = type opaque

declare %swift.refcounted* @rt_swift_allocObject(%swift.heapmetadata* , i64, i64) nounwind
declare %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge*)
declare void @swift_bridgeObjectRelease(%swift.bridge* )
declare void @rt_swift_release(%swift.refcounted* nocapture)
declare void @rt_swift_retain(%swift.refcounted* ) nounwind
declare void @swift_unknownRelease(%swift.refcounted* nocapture)
declare void @swift_unknownRetain(%swift.refcounted* ) nounwind
declare void @swift_fixLifetime(%swift.refcounted*)
declare void @noread_user(%swift.refcounted*) readnone
declare void @user(%swift.refcounted*)
declare void @noread_user_bridged(%swift.bridge*) readnone
declare void @user_bridged(%swift.bridge*)

; CHECK-LABEL: define{{( protected)?}} void @fixlifetime_removal(i8*) {
; CHECK-NOT: call void swift_fixLifetime
define void @fixlifetime_removal(i8*) {
entry:
  %1 = bitcast i8* %0 to %swift.refcounted*
  call void @swift_fixLifetime(%swift.refcounted* %1)
  ret void
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainN(%swift.refcounted* %A) {
; CHECK: entry:
; CHECK-NEXT: br i1 undef
; CHECK: bb1:
; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractRetainN(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainNWithRCIdentity(%swift.refcounted* %A) {
; CHECK: entry:
; CHECK-NEXT: br i1 undef
; CHECK: bb1:
; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractRetainNWithRCIdentity(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
  tail call void @rt_swift_retain(%swift.refcounted* %0)
  br label %bb3

bb2:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseN(%swift.refcounted* %A) {
; CHECK: entry:
; CHECK-NEXT: br i1 undef
; CHECK: bb1:
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractReleaseN(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseNWithRCIdentity(%swift.refcounted* %A) {
; CHECK: entry:
; CHECK-NEXT: br i1 undef
; CHECK: bb1:
; CHECK-NEXT: %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractReleaseNWithRCIdentity(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  %0 = bitcast %swift.refcounted* %A to %swift.refcounted*
  tail call void @rt_swift_release(%swift.refcounted* %0)
  br label %bb3

bb2:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}


; Make sure that we do not form retainN,releaseN over uses that may
; read the reference count of the object.

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainNWithUnknown(%swift.refcounted* %A) {
; CHECK-NOT: call %swift.refcounted* @rt_swift_retain_n
define %swift.refcounted* @swift_contractRetainNWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseNWithUnknown(%swift.refcounted* %A) {
; CHECK-NOT: call void @rt_swift_release_n
define %swift.refcounted* @swift_contractReleaseNWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; But do make sure that we can form retainN, releaseN in between such uses
; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 3)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb2:
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK-NEXT: @rt_swift_release(
; CHECK-NEXT: @user
; CHECK-NEXT: @noread_user
; CHECK-NEXT: @rt_swift_release_n
; CHECK-NEXT: @user
; CHECK-NEXT: br label %bb3
define %swift.refcounted* @swift_contractReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK-NEXT: tail call void @rt_swift_retain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_retain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @rt_swift_release_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb3:
; CHECK-NEXT: tail call void @rt_swift_release(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  tail call void @rt_swift_retain(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @rt_swift_release(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @rt_swift_release(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractUnknownRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK: tail call void @swift_unknownRetain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRetain_n(%swift.refcounted* %A, i32 3)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRetain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRetain(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb2:
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRetain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb3:
; CHECK-NEXT: tail call void @swift_unknownRetain(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractUnknownRetainNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractUnknownReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK-NEXT: @swift_unknownRelease(
; CHECK-NEXT: @user
; CHECK-NEXT: @noread_user
; CHECK-NEXT: @swift_unknownRelease_n
; CHECK-NEXT: @user
; CHECK-NEXT: br label %bb3
define %swift.refcounted* @swift_contractUnknownReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.refcounted* @swift_contractUnknownRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
; CHECK: bb1:
; CHECK-NEXT: tail call void @swift_unknownRetain(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRelease_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRetain_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: tail call void @swift_unknownRelease(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @noread_user(%swift.refcounted* %A)
; CHECK-NEXT: tail call void @swift_unknownRelease_n(%swift.refcounted* %A, i32 2)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: call void @swift_unknownRelease(%swift.refcounted* %A)
; CHECK-NEXT: call void @user(%swift.refcounted* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb3:
; CHECK-NEXT: tail call void @swift_unknownRelease(%swift.refcounted* %A)
; CHECK-NEXT: ret %swift.refcounted* %A
define %swift.refcounted* @swift_contractUnknownRetainReleaseNInterleavedWithUnknown(%swift.refcounted* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  tail call void @swift_unknownRetain(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @noread_user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb2:
  call void @user(%swift.refcounted* %A)
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  call void @user(%swift.refcounted* %A)
  br label %bb3

bb3:
  tail call void @swift_unknownRelease(%swift.refcounted* %A)
  ret %swift.refcounted* %A
}


; CHECK-LABEL: define{{( protected)?}} %swift.bridge* @swift_contractBridgeRetainWithBridge(%swift.bridge* %A) {
; CHECK: bb1:
; CHECK-NEXT: [[RET0:%.+]] = tail call %swift.bridge* @swift_bridgeObjectRetain_n(%swift.bridge* %A, i32 2)
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease(%swift.bridge* [[RET0:%.+]])
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
; CHECK-NEXT: ret %swift.bridge* %A
define %swift.bridge* @swift_contractBridgeRetainWithBridge(%swift.bridge* %A) {
bb1:
  %0 = tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
  %1 = tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %1)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  ret %swift.bridge* %A
}

; CHECK-LABEL: define{{( protected)?}} %swift.bridge* @swift_contractBridgeRetainReleaseNInterleavedWithBridge(%swift.bridge* %A) {
; CHECK: bb1:
; CHECK-NEXT: [[RET0:%.+]] = tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: call void @noread_user_bridged(%swift.bridge* %A)
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease_n(%swift.bridge* %A, i32 2)
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: [[RET1:%.+]] = tail call %swift.bridge* @swift_bridgeObjectRetain_n(%swift.bridge* %A, i32 2)
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: call void @noread_user_bridged(%swift.bridge* %A)
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease_n(%swift.bridge* %A, i32 2)
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: br label %bb3
; CHECK: bb2:
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: call void @swift_bridgeObjectRelease(%swift.bridge* %A)
; CHECK-NEXT: call void @user_bridged(%swift.bridge* %A)
; CHECK-NEXT: br label %bb3

; CHECK: bb3:
; CHECK-NEXT: tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
; CHECK-NEXT: ret %swift.bridge* %A
define %swift.bridge* @swift_contractBridgeRetainReleaseNInterleavedWithBridge(%swift.bridge* %A) {
entry:
  br i1 undef, label %bb1, label %bb2

bb1:
  tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
  call void @user_bridged(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @noread_user_bridged(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @user_bridged(%swift.bridge* %A)
  tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
  tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @user_bridged(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @noread_user_bridged(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @user_bridged(%swift.bridge* %A)
  br label %bb3

bb2:
  call void @user_bridged(%swift.bridge* %A)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  call void @user_bridged(%swift.bridge* %A)
  br label %bb3

bb3:
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %A)
  ret %swift.bridge* %A
}

!llvm.dbg.cu = !{!1}
!llvm.module.flags = !{!4}

!0 = !DILocation(line: 0, scope: !3)
!1 = distinct !DICompileUnit(language: DW_LANG_Swift, file: !2)
!2 = !DIFile(filename: "contract.swift", directory: "")
!3 = distinct !DISubprogram(name: "_", scope: !1, file: !2, type: !DISubroutineType(types: !{}))
!4 = !{i32 1, !"Debug Info Version", i32 3}
