# RUN: llc %s -o - -mtriple=x86_64-unknown-unknown \
# RUN:    -experimental-debug-variable-locations -run-pass=livedebugvalues\
# RUN:    | FileCheck %s
#
# Test that a DBG_INSTR_REF that refers to a DBG_PHI, will be translated into a
# DBG_VALUE of the value read at that DBG_PHI. Same original code as
# phi-coalescing.mir.
# 
--- |
  ; ModuleID = 'phi-coalescing.mir'
  source_filename = "test.c"
  target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-unknown-linux-gnu"
  
  define dso_local i32 @foo(i64 %bar, i64 %baz) !dbg !7 {
  entry:
    call void @llvm.dbg.value(metadata i64 %bar, metadata !12, metadata !DIExpression()), !dbg !13
    call void @llvm.dbg.value(metadata i64 %baz, metadata !14, metadata !DIExpression()), !dbg !13
    call void @ext(i64 %bar), !dbg !15
    %add = add nsw i64 %bar, 12, !dbg !16
    call void @llvm.dbg.value(metadata i64 %add, metadata !12, metadata !DIExpression()), !dbg !13
    call void @ext(i64 %add), !dbg !17
    %call = call i64 @getlong(), !dbg !18
    %tobool = icmp ne i64 %call, 0, !dbg !18
    br i1 %tobool, label %if.then, label %if.end, !dbg !20
  
  if.then:                                          ; preds = %entry
    %add1 = add nsw i64 %add, 1, !dbg !21
    call void @llvm.dbg.value(metadata i64 %add1, metadata !12, metadata !DIExpression()), !dbg !13
    br label %if.end, !dbg !22
  
  if.end:                                           ; preds = %if.then, %entry
    %bar.addr.0 = phi i64 [ %add1, %if.then ], [ %add, %entry ], !dbg !13
    call void @llvm.dbg.value(metadata i64 %bar.addr.0, metadata !12, metadata !DIExpression()), !dbg !13
    %add2 = add nsw i64 %bar.addr.0, %baz, !dbg !23
    call void @llvm.dbg.value(metadata i64 %add2, metadata !12, metadata !DIExpression()), !dbg !13
    call void @ext(i64 %add2), !dbg !24
    %conv = trunc i64 %add2 to i32, !dbg !25
    ret i32 %conv, !dbg !26
  }
  
  ; Function Attrs: nounwind readnone speculatable willreturn
  declare void @llvm.dbg.declare(metadata, metadata, metadata)
  
  declare dso_local void @ext(i64)
  
  declare dso_local i64 @getlong()
  
  ; Function Attrs: nounwind readnone speculatable willreturn
  declare void @llvm.dbg.value(metadata, metadata, metadata)
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4, !5}
  !llvm.ident = !{!6}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None)
  !1 = !DIFile(filename: "test.c", directory: "/tmp/out.c")
  !2 = !{}
  !3 = !{i32 7, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = !{i32 1, !"wchar_size", i32 4}
  !6 = !{!""}
  !7 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 3, type: !8, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
  !8 = !DISubroutineType(types: !9)
  !9 = !{!10, !11, !11}
  !10 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !11 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed)
  !12 = !DILocalVariable(name: "bar", arg: 1, scope: !7, file: !1, line: 3, type: !11)
  !13 = !DILocation(line: 0, scope: !7)
  !14 = !DILocalVariable(name: "baz", arg: 2, scope: !7, file: !1, line: 3, type: !11)
  !15 = !DILocation(line: 4, column: 3, scope: !7)
  !16 = !DILocation(line: 5, column: 7, scope: !7)
  !17 = !DILocation(line: 6, column: 3, scope: !7)
  !18 = !DILocation(line: 8, column: 7, scope: !19)
  !19 = distinct !DILexicalBlock(scope: !7, file: !1, line: 8, column: 7)
  !20 = !DILocation(line: 8, column: 7, scope: !7)
  !21 = !DILocation(line: 9, column: 9, scope: !19)
  !22 = !DILocation(line: 9, column: 5, scope: !19)
  !23 = !DILocation(line: 11, column: 7, scope: !7)
  !24 = !DILocation(line: 12, column: 3, scope: !7)
  !25 = !DILocation(line: 13, column: 10, scope: !7)
  !26 = !DILocation(line: 13, column: 3, scope: !7)

...
---
name:            foo
alignment:       16
tracksRegLiveness: true
liveins:
  - { reg: '$rdi' }
  - { reg: '$rsi' }
frameInfo:
  stackSize:       24
  offsetAdjustment: -24
  maxAlignment:    1
  adjustsStack:    true
  hasCalls:        true
  maxCallFrameSize: 0
  cvBytesOfCalleeSavedRegisters: 16
fixedStack:
  - { id: 0, type: spill-slot, offset: -24, size: 8, alignment: 8, callee-saved-register: '$rbx' }
  - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 16, callee-saved-register: '$r14' }
machineFunctionInfo: {}
body:             |
  bb.0.entry:
    liveins: $rdi, $rsi, $r14, $rbx
  
    frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 16
    frame-setup PUSH64r killed $rbx, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 24
    frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
    CFI_INSTRUCTION def_cfa_offset 32
    CFI_INSTRUCTION offset $rbx, -24
    CFI_INSTRUCTION offset $r14, -16
    $r14 = MOV64rr $rsi
    $rbx = MOV64rr $rdi
    CALL64pcrel32 @ext, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, debug-location !15
    renamable $rbx = ADD64ri32 killed renamable $rbx, 12, implicit-def $eflags, debug-location !16
    $rdi = MOV64rr $rbx, debug-location !17
    CALL64pcrel32 @ext, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, debug-location !17
    CALL64pcrel32 @getlong, csr_64, implicit $rsp, implicit $ssp, implicit-def $rax, debug-location !18
    CMP64ri8 killed renamable $rax, 0, implicit-def $eflags, debug-location !18
    JCC_1 %bb.2, 4, implicit $eflags, debug-location !20
  
  bb.1.if.then:
    liveins: $rbx, $r14
  
    renamable $rbx = ADD64ri32 killed renamable $rbx, 1, implicit-def $eflags, debug-location !21
  
  bb.2.if.end:
    liveins: $rbx, $r14
  
    DBG_PHI $rbx, 1
    $rax = COPY $rbx
    $rbx = MOV64ri 0
    DBG_INSTR_REF 1, 0, !12, !DIExpression(), debug-location !13

    ; This sequence should mark the contents of rbx on block entry as being the
    ; value for the variable at this DBG_INSTR_REF. We've force it to be in
    ; $rax now, so we should see a DBG_VALUE for rax:
    ; CHECK:      DBG_PHI $rbx, 1
    ; CHECK-NEXT: $rax = COPY $rbx
    ; CHECK-NEXT: $rbx = MOV64ri 0
    ; CHECK-NEXT: DBG_INSTR_REF 1, 0
    ; CHECK-NEXT: DBG_VALUE $rax, $noreg

    $rbx = COPY $rax
    renamable $rbx = ADD64rr killed renamable $rbx, killed renamable $r14, implicit-def $eflags, debug-location !23
    DBG_VALUE $rbx, $noreg, !12, !DIExpression(), debug-location !13
    $rdi = MOV64rr $rbx, debug-location !24
    CALL64pcrel32 @ext, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, debug-location !24
    $eax = MOV32rr $ebx, implicit killed $rbx, debug-location !26
    $rsp = frame-destroy ADD64ri8 $rsp, 8, implicit-def dead $eflags, debug-location !26
    CFI_INSTRUCTION def_cfa_offset 24, debug-location !26
    $rbx = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !26
    CFI_INSTRUCTION def_cfa_offset 16, debug-location !26
    $r14 = frame-destroy POP64r implicit-def $rsp, implicit $rsp, debug-location !26
    CFI_INSTRUCTION def_cfa_offset 8, debug-location !26
    RET64 implicit $eax, debug-location !26

...
