; RUN: opt < %s -gvn -S | FileCheck %s
;
; Produced at -O2 from:
; int a, b;
; void f1(int *p1) {
;   if (b)
;     a = 1;
;   if (a && *p1)
;     f4();
; }
; int f2(int);
; void f3(void) {
;   a = f2(1);
;   f1(&a);
; }
source_filename = "test/DebugInfo/Generic/gvn.ll"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-ios"

@a = common global i32 0, align 4, !dbg !0
@b = common global i32 0, align 4, !dbg !6

; Function Attrs: nounwind
define void @f3() #0 !dbg !12 {
entry:
  ; Verify that the call still has a debug location after GVN.
  ; CHECK: %call = tail call i32 @f2(i32 1) #{{[0-9]}}, !dbg
  %call = tail call i32 @f2(i32 1) #0, !dbg !15
  store i32 %call, i32* @a, align 4, !dbg !15, !tbaa !24
  tail call void @llvm.dbg.value(metadata i32* @a, metadata !22, metadata !28) #0, !dbg !29
  %0 = load i32, i32* @b, align 4, !dbg !29, !tbaa !24
  %tobool.i = icmp eq i32 %0, 0, !dbg !29
  br i1 %tobool.i, label %if.end.i, label %land.lhs.true.i.thread, !dbg !30

land.lhs.true.i.thread:                           ; preds = %entry
  store i32 1, i32* @a, align 4, !dbg !32, !tbaa !24
  br label %if.then.3.i, !dbg !33

  ; This instruction has no debug location -- in this
  ; particular case it was removed by a bug in SimplifyCFG.
if.end.i:                                         ; preds = %entry
  %.pr = load i32, i32* @a, align 4
  ; GVN is supposed to replace the load of %.pr with a direct reference to %call.
  ; CHECK: %tobool2.i = icmp eq i32 %call, 0, !dbg
  %tobool2.i = icmp eq i32 %.pr, 0, !dbg !34
  br i1 %tobool2.i, label %f1.exit, label %if.then.3.i, !dbg !34

if.then.3.i:                                      ; preds = %if.end.i, %land.lhs.true.i.thread
  %call.i = tail call i32 bitcast (i32 (...)* @f4 to i32 ()*)() #0, !dbg !35
  br label %f1.exit, !dbg !35

f1.exit:                                          ; preds = %if.then.3.i, %if.end.i
  ret void, !dbg !36
}

declare i32 @f2(i32)

declare i32 @f4(...)

; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #1

attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }

!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!9, !10}
!llvm.ident = !{!11}

!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = !DIGlobalVariable(name: "a", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 3.8.0 (trunk 245562) (llvm/trunk 245569)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
!3 = !DIFile(filename: "test.c", directory: "/")
!4 = !{}
!5 = !{!0, !6}
!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
!7 = !DIGlobalVariable(name: "b", scope: !2, file: !3, line: 1, type: !8, isLocal: false, isDefinition: true)
!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!9 = !{i32 2, !"Dwarf Version", i32 2}
!10 = !{i32 2, !"Debug Info Version", i32 3}
!11 = !{!"clang version 3.8.0 (trunk 245562) (llvm/trunk 245569)"}
!12 = distinct !DISubprogram(name: "f3", scope: !3, file: !3, line: 9, type: !13, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !4)
!13 = !DISubroutineType(types: !14)
!14 = !{null}
!15 = !DILocation(line: 5, scope: !16, inlinedAt: !23)
!16 = distinct !DILexicalBlock(scope: !17, file: !3, line: 5)
!17 = distinct !DISubprogram(name: "f1", scope: !3, file: !3, line: 2, type: !18, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !21)
!18 = !DISubroutineType(types: !19)
!19 = !{null, !20}
!20 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 64)
!21 = !{!22}
!22 = !DILocalVariable(name: "p1", arg: 1, scope: !17, file: !3, line: 2, type: !20)
!23 = distinct !DILocation(line: 11, scope: !12)
!24 = !{!25, !25, i64 0}
!25 = !{!"int", !26, i64 0}
!26 = !{!"omnipotent char", !27, i64 0}
!27 = !{!"Simple C/C++ TBAA"}
!28 = !DIExpression()
!29 = !DILocation(line: 2, scope: !17, inlinedAt: !23)
!30 = !DILocation(line: 3, scope: !31, inlinedAt: !23)
!31 = distinct !DILexicalBlock(scope: !17, file: !3, line: 3)
!32 = !DILocation(line: 3, scope: !17, inlinedAt: !23)
!33 = !DILocation(line: 4, scope: !31, inlinedAt: !23)
!34 = !DILocation(line: 5, scope: !17, inlinedAt: !23)
!35 = !DILocation(line: 6, scope: !16, inlinedAt: !23)
!36 = !DILocation(line: 12, scope: !12)

