# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple arm64-- -run-pass=instruction-select %s -o - | FileCheck %s

--- |
  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"

  define void @test_dbg_value(i32 %a) !dbg !5 {
    %tmp0 = add i32 %a, %a
    call void @llvm.dbg.value(metadata i32 %tmp0, i64 0, metadata !7, metadata !DIExpression()), !dbg !9
    ret void
  }

  define void @test_dbg_value_dead(i32 %a) !dbg !10 {
    call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !11, metadata !DIExpression()), !dbg !12
    ret void
  }

  declare void @llvm.dbg.value(metadata, i64, metadata, metadata)

  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4}

  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "llvm", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
  !1 = !DIFile(filename: "test.ll", directory: "/tmp")
  !2 = !{}
  !3 = !{i32 2, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = distinct !DISubprogram(name: "test_dbg_value", scope: !1, file: !1, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !6 = !DISubroutineType(types: !2)
  !7 = !DILocalVariable(name: "in", arg: 1, scope: !5, file: !1, line: 1, type: !8)
  !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !9 = !DILocation(line: 1, column: 1, scope: !5)
  !10 = distinct !DISubprogram(name: "test_dbg_value", scope: !1, file: !1, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !11 = !DILocalVariable(name: "in", arg: 1, scope: !10, file: !1, line: 1, type: !8)
  !12 = !DILocation(line: 1, column: 1, scope: !10)
...

---
name:            test_dbg_value
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_dbg_value
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[ADDWrr:%[0-9]+]]:gpr32 = ADDWrr [[COPY]], [[COPY]]
    ; CHECK: $w0 = COPY [[ADDWrr]]
    ; CHECK: DBG_VALUE [[ADDWrr]], $noreg, !7, !DIExpression(), debug-location !9
    %0:gpr(s32) = COPY $w0
    %1:gpr(s32) = G_ADD %0, %0
    $w0 = COPY %1(s32)
    DBG_VALUE %1(s32), $noreg, !7, !DIExpression(), debug-location !9
...

---
name:            test_dbg_value_dead
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_dbg_value_dead
    ; CHECK-NOT: COPY
    ; CHECK: DBG_VALUE $noreg, $noreg, !7, !DIExpression(), debug-location !9
    %0:gpr(s32) = COPY $w0
    DBG_VALUE %0(s32), $noreg, !7, !DIExpression(), debug-location !9
...
