; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -instcombine -instcombine-infinite-loop-threshold=2 -S | FileCheck %s

declare void @llvm.dbg.declare(metadata, metadata, metadata)
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
declare void @foo(i8* nocapture, i8* nocapture)

define void @bar(i1 %flag) !dbg !4 {
; CHECK-LABEL: @bar(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[TEXT:%.*]] = alloca [1 x i8], align 1
; CHECK-NEXT:    [[BUFF:%.*]] = alloca [1 x i8], align 1
; CHECK-NEXT:    br i1 [[FLAG:%.*]], label [[IF:%.*]], label [[ELSE:%.*]]
; CHECK:       if:
; CHECK-NEXT:    br label [[BB2:%.*]]
; CHECK:       bb2:
; CHECK-NEXT:    br label [[BB3:%.*]]
; CHECK:       bb3:
; CHECK-NEXT:    call void @llvm.dbg.declare(metadata [1 x i8]* [[TEXT]], metadata [[META16:![0-9]+]], metadata !DIExpression()), !dbg [[DBG24:![0-9]+]]
; CHECK-NEXT:    br label [[FIN:%.*]]
; CHECK:       else:
; CHECK-NEXT:    [[TMP0:%.*]] = getelementptr inbounds [1 x i8], [1 x i8]* [[TEXT]], i64 0, i64 0
; CHECK-NEXT:    [[TMP1:%.*]] = getelementptr inbounds [1 x i8], [1 x i8]* [[BUFF]], i64 0, i64 0
; CHECK-NEXT:    call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull [[TMP0]])
; CHECK-NEXT:    call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull [[TMP1]])
; CHECK-NEXT:    call void @foo(i8* nonnull [[TMP1]], i8* nonnull [[TMP0]])
; CHECK-NEXT:    call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull [[TMP1]])
; CHECK-NEXT:    call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull [[TMP0]])
; CHECK-NEXT:    br label [[FIN]]
; CHECK:       fin:
; CHECK-NEXT:    ret void
;
entry:
  %text = alloca [1 x i8], align 1
  %buff = alloca [1 x i8], align 1
  %0 = getelementptr inbounds [1 x i8], [1 x i8]* %text, i64 0, i64 0
  %1 = getelementptr inbounds [1 x i8], [1 x i8]* %buff, i64 0, i64 0
  br i1 %flag, label %if, label %else

if:
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %0)
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %1)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %1)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %0)
  br label %bb2

bb2:
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %0)
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %1)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %0)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %1)
  br label %bb3

bb3:
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %0)
  call void @llvm.dbg.declare(metadata [1 x i8]* %text, metadata !14, metadata !25), !dbg !26
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %0)
  br label %fin

else:
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %0)
  call void @llvm.lifetime.start.p0i8(i64 1, i8* %1)
  call void @foo(i8* %1, i8* %0)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %1)
  call void @llvm.lifetime.end.p0i8(i64 1, i8* %0)
  br  label %fin

fin:
  ret void
}

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!22, !23}
!llvm.ident = !{!24}

!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.8.0 (trunk 248826) (llvm/trunk 248827)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "test.cpp", directory: "/home/user")
!2 = !{}
!4 = distinct !DISubprogram(name: "bar", linkageName: "bar", scope: !1, file: !1, line: 2, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !8)
!5 = !DISubroutineType(types: !6)
!6 = !{null, !7}
!7 = !DIBasicType(name: "bool", size: 8, align: 8, encoding: DW_ATE_boolean)
!8 = !{!9, !11, !12, !14, !21}
!9 = !DILocalVariable(name: "Size", arg: 1, scope: !4, file: !1, line: 2, type: !10)
!10 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!11 = !DILocalVariable(name: "flag", arg: 2, scope: !4, file: !1, line: 2, type: !7)
!12 = !DILocalVariable(name: "i", scope: !13, file: !1, line: 3, type: !10)
!13 = distinct !DILexicalBlock(scope: !4, file: !1, line: 3, column: 3)
!14 = !DILocalVariable(name: "text", scope: !15, file: !1, line: 4, type: !17)
!15 = distinct !DILexicalBlock(scope: !16, file: !1, line: 3, column: 30)
!16 = distinct !DILexicalBlock(scope: !13, file: !1, line: 3, column: 3)
!17 = !DICompositeType(tag: DW_TAG_array_type, baseType: !18, size: 8, align: 8, elements: !19)
!18 = !DIBasicType(name: "char", size: 8, align: 8, encoding: DW_ATE_signed_char)
!19 = !{!20}
!20 = !DISubrange(count: 1)
!21 = !DILocalVariable(name: "buff", scope: !15, file: !1, line: 5, type: !17)
!22 = !{i32 2, !"Dwarf Version", i32 4}
!23 = !{i32 2, !"Debug Info Version", i32 3}
!24 = !{!"clang version 3.8.0 (trunk 248826) (llvm/trunk 248827)"}
!25 = !DIExpression()
!26 = !DILocation(line: 4, column: 10, scope: !15)
