# RUN: llc -mtriple=x86_64-linux-gnu -start-before greedy -stop-after virtregrewriter -o - -verify-machineinstrs %s | FileCheck %s

--- |
  ; ModuleID = '<stdin>'
  source_filename = "test/DebugInfo/X86/dbg-value-inlined-parameter.ll"
  target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-apple-darwin"

  %struct.S1 = type { float*, i32 }

  @p = common global %struct.S1 zeroinitializer, align 8, !dbg !0

  ; Function Attrs: nounwind optsize ssp
  define void @foobar() !dbg !15 {
  entry:
    tail call void @llvm.dbg.value(metadata %struct.S1* @p, metadata !18, metadata !DIExpression()) , !dbg !25
    ret void, !dbg !32
  }

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

  !llvm.dbg.cu = !{!2}
  !llvm.module.flags = !{!14}

  !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
  !1 = !DIGlobalVariable(name: "p", scope: !2, file: !3, line: 14, type: !6, isLocal: false, isDefinition: true)
  !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 2.9 (trunk 125693)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
  !3 = !DIFile(filename: "nm2.c", directory: "/private/tmp")
  !4 = !{}
  !5 = !{!0}
  !6 = !DIDerivedType(tag: DW_TAG_typedef, name: "S1", scope: !2, file: !3, line: 4, baseType: !7)
  !7 = !DICompositeType(tag: DW_TAG_structure_type, name: "S1", scope: !2, file: !3, line: 1, size: 128, align: 64, elements: !8)
  !8 = !{!9, !12}
  !9 = !DIDerivedType(tag: DW_TAG_member, name: "m", scope: !3, file: !3, line: 2, baseType: !10, size: 64, align: 64)
  !10 = !DIDerivedType(tag: DW_TAG_pointer_type, scope: !2, baseType: !11, size: 64, align: 64)
  !11 = !DIBasicType(name: "float", size: 32, align: 32, encoding: DW_ATE_float)
  !12 = !DIDerivedType(tag: DW_TAG_member, name: "nums", scope: !3, file: !3, line: 3, baseType: !13, size: 32, align: 32, offset: 64)
  !13 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
  !14 = !{i32 1, !"Debug Info Version", i32 3}
  !15 = distinct !DISubprogram(name: "foobar", scope: !3, file: !3, line: 15, type: !16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2)
  !16 = !DISubroutineType(types: !17)
  !17 = !{null}
  !18 = !DILocalVariable(name: "sp", arg: 1, scope: !19, file: !3, line: 7, type: !24)
  !19 = distinct !DISubprogram(name: "foo", scope: !3, file: !3, line: 8, type: !20, isLocal: false, isDefinition: true, scopeLine: 8, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, retainedNodes: !22)
  !20 = !DISubroutineType(types: !21)
  !21 = !{!13}
  !22 = !{!18, !23}
  !23 = !DILocalVariable(name: "nums", arg: 2, scope: !19, file: !3, line: 7, type: !13)
  !24 = !DIDerivedType(tag: DW_TAG_pointer_type, scope: !2, baseType: !6, size: 64, align: 64)
  !25 = !DILocation(line: 7, column: 13, scope: !19, inlinedAt: !26)
  !26 = !DILocation(line: 16, column: 3, scope: !27)
  !27 = distinct !DILexicalBlock(scope: !15, file: !3, line: 15, column: 15)
  !32 = !DILocation(line: 17, column: 1, scope: !27)

...
---
name:            foobar
tracksRegLiveness: true
body:             |
  bb.0:
    %1:gr64 = IMPLICIT_DEF
    %2:gr64 = IMPLICIT_DEF

  bb.1:
    ; This DBG_VALUE will be discarded (use before def of %0).
    DBG_VALUE %0, $noreg, !18, !DIExpression(), debug-location !25
    %0:gr64 = IMPLICIT_DEF
    %0:gr64 = IMPLICIT_DEF
    %0:gr64 = IMPLICIT_DEF
    %0:gr64 = IMPLICIT_DEF

  bb.2:
    ; This DBG_VALUE will be discarded (%1 is defined earlier, but it is not live in, so we do not know where %1 is stored).
    DBG_VALUE %1, $noreg, !18, !DIExpression(), debug-location !25
    %1:gr64 = IMPLICIT_DEF
    %1:gr64 = IMPLICIT_DEF
    %1:gr64 = IMPLICIT_DEF
    %1:gr64 = IMPLICIT_DEF
    ; This DBG_VALUE is kept, even if %1 is dead, it was defined in the prev instruction,
    ; so the value should be available for as long as the register allocated to %1 is live.
    DBG_VALUE %1, $noreg, !18, !DIExpression(), debug-location !25

  bb.3:
    %1:gr64 = IMPLICIT_DEF
    DBG_VALUE 0, $noreg, !23, !DIExpression(), debug-location !25
    ; This DBG_VALUE is kept, even if %1 is dead, it was defined in the prev non-dbg instruction,
    ; so the value should be available for as long as the register allocated to %1 is live.
    DBG_VALUE %1, $noreg, !18, !DIExpression(), debug-location !25

  bb.4:
    ; All DBG_VALUEs here should survive. %2 is livein as it was defined in bb.0, and it has use/def in the BTS64ri8 instruction.
    DBG_VALUE %2, $noreg, !18, !DIExpression(), debug-location !25
    %2:gr64 = BTS64ri8 %2, 0, implicit-def $eflags
    DBG_VALUE 0, $noreg, !23, !DIExpression(), debug-location !25
    DBG_VALUE %2, $noreg, !18, !DIExpression(), debug-location !25
    %2:gr64 = BTS64ri8 %2, 0, implicit-def $eflags
    DBG_VALUE %2, $noreg, !18, !DIExpression(), debug-location !25
    %2:gr64 = BTS64ri8 %2, 0, implicit-def $eflags
    DBG_VALUE %2, $noreg, !18, !DIExpression(), debug-location !25

  bb.5:
    RET 0, debug-location !32
...

# CHECK-LABEL: name: foobar

# CHECK-LABEL: bb.1:
# CHECK:        DBG_VALUE $noreg

# CHECK-LABEL: bb.2:
# CHECK:        DBG_VALUE $noreg
# CHECK-NEXT:   dead renamable $rcx = IMPLICIT_DEF
# CHECK-NEXT:   dead renamable $rcx = IMPLICIT_DEF
# CHECK-NEXT:   dead renamable $rcx = IMPLICIT_DEF
# CHECK-NEXT:   dead renamable $rcx = IMPLICIT_DEF
# CHECK-NEXT:   DBG_VALUE $noreg, $noreg, !18, !DIExpression()

# CHECK-LABEL: bb.3:
# CHECK:        dead renamable $rcx = IMPLICIT_DEF
# CHECK-NEXT:   DBG_VALUE 0, $noreg, !23, !DIExpression()
# CHECK-NEXT:   DBG_VALUE $rcx, $noreg, !18, !DIExpression()

# CHECK-LABEL: bb.4:
# CHECK:        liveins: $rax
# CHECK:        DBG_VALUE $rax, $noreg, !18, !DIExpression()
# CHECK-NEXT:   renamable $rax = BTS64ri8 killed renamable $rax, 0, implicit-def $eflags
# CHECK-NEXT:   DBG_VALUE 0, $noreg, !23, !DIExpression()
# CHECK-NEXT:   DBG_VALUE $rax, $noreg, !18, !DIExpression()
# CHECK-NEXT:   renamable $rax = BTS64ri8 killed renamable $rax, 0, implicit-def $eflags
# CHECK-NEXT:   DBG_VALUE $rax, $noreg, !18, !DIExpression()
# CHECK-NEXT:   dead renamable $rax = BTS64ri8 killed renamable $rax, 0, implicit-def $eflags

# CHECK-LABEL: bb.5:
# CHECK-NEXT:   RET 0
