# RUN: llc %s -start-after=arm-mve-vpt-opts -stop-after=arm-prera-ldst-opt -o - | FileCheck %s
# CHECK: %5:rgpr = t2MOVCCr %3, killed %4, 0 /* CC::eq */, $cpsr, debug-location !{{[0-9]+}}
# CHECK-NEXT: DBG_VALUE 0, $noreg, ![[DBG:[0-9]+]], !DIExpression(), debug-location !{{[0-9]+}}
# CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[DBG]], !DIExpression(), debug-location !{{[0-9]+}}
# CHECK-NEXT: DBG_VALUE $noreg, $noreg, !{{[0-9]+}}, !DIExpression(), debug-location !{{[0-9]+}}
# CHECK-NEXT: %0:rgpr = t2LDRi12 %5, 0, 14 /* CC::al */, $noreg, debug-location !{{[0-9]+}} :: (load (s32) from %ir..backtrace_user.ctl_default, align 8)
# CHECK-NEXT: DBG_VALUE %0, $noreg, ![[DBG]], !DIExpression(), debug-location !{{[0-9]+}}
# CHECK-NEXT: DBG_VALUE %0, $noreg, !{{[0-9]+}}, !DIExpression(), debug-location !{{[0-9]+}}
# CHECK-NEXT: %6:rgpr = t2LDRi12 %5, 4, 14 /* CC::al */, $noreg, debug-location !{{[0-9]+}} :: (load (s32) from %ir.btc_user_copy)
# CHECK-NEXT: %2:gpr = t2LDRi12 %5, 8, 14 /* CC::al */, $noreg, debug-location !{{[0-9]+}} :: (load (s32) from %ir.btc_user_copy_context, align 8)
# CHECK-NEXT: %7:rgpr = t2ANDrr %6, %0, 14 /* CC::al */, $noreg, def $cpsr
# CHECK-NEXT: DBG_VALUE %2, $noreg, ![[DBG]], !DIExpression(), debug-location !{{[0-9]+}}

# This test checks the case where two DBG_VALUEs share the same virtual register but describe different local variables.

--- |
  target triple = "thumbv7k-apple-watchos8.0.0"
  %struct.backtrace_control = type {}
  @backtrace_user.ctl_default = internal unnamed_addr constant %struct.backtrace_control zeroinitializer, !dbg !0
  define i32 @backtrace_user(ptr nocapture noundef writeonly %bt, i32 noundef %max_frames, ptr noundef readonly %ctl_in, ptr nocapture noundef readnone %info_out) local_unnamed_addr #0 !dbg !2 {entry:
    %tobool.not = icmp eq ptr %ctl_in, null, !dbg !95
    %.backtrace_user.ctl_default = select i1 %tobool.not, ptr @backtrace_user.ctl_default, ptr %ctl_in, !dbg !95
    %btc_user_copy = getelementptr inbounds %struct.backtrace_control, ptr %.backtrace_user.ctl_default, !dbg !95
    %btc_user_copy_context = getelementptr inbounds %struct.backtrace_control, ptr %.backtrace_user.ctl_default, !dbg !95
    ret i32 undef, !dbg !95
  }
  !llvm.module.flags = !{!88, !93}
  !llvm.dbg.cu = !{!32}
  !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
  !1 = distinct !DIGlobalVariable(type: !11, isDefinition: true)
  !2 = distinct !DISubprogram(unit: !32, retainedNodes: !38)
  !3 = !DIFile(filename: "backtrace.pp.c", directory: "/Users/shubham/Development/Delta")
  !11 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !12)
  !12 = distinct !DICompositeType(tag: DW_TAG_member, offset: 32)
  !16 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !21)
  !21 = !DIBasicType()
  !32 = distinct !DICompileUnit(language: DW_LANG_C11, file: !33, sdk: "MacOSX13.0.sdk")
  !33 = !DIFile(filename: "/Users/shubham/Development/Delta/backtrace.pp.c", directory: "/Users/shubham/Development/Delta")
  !38 = !{!59, !60, !85}
  !59 = !DILocalVariable(scope: !2, type: !16)
  !60 = !DILocalVariable(scope: !2, type: !62)
  !62 = distinct !DICompositeType(tag: DW_TAG_union_type, size: 128)
  !85 = !DILabel(scope: !2, name: "out", file: !3, line: 102)
  !88 = !{i32 2, !"Debug Info Version", i32 3}
  !93 = !{i32 7, !"frame-pointer", i32 1}
  !95 = !DILocation(line: 5, column: 10, scope: !2)
name:            backtrace_user
registers:
  - {id: 0, class: rgpr, }
  - {id: 1, class: gpr, }
  - {id: 2, class: gpr, }
body:             |
  bb.0.entry:
    %10:rgpr = COPY $r2
    %13:rgpr = t2MOV_ga_pcrel target-flags(arm-nonlazy) @backtrace_user.ctl_default, debug-location !95
    %15:rgpr = t2MOVCCr %10, killed %13, 0 /* CC::eq */, $cpsr, debug-location !95
    DBG_VALUE 0, $noreg, !60, !DIExpression(), debug-location !95
    %0:rgpr = t2LDRi12 %15, 0, 14 /* CC::al */, $noreg, debug-location !95 :: (load (s32) from %ir..backtrace_user.ctl_default, align 8)
    DBG_VALUE %0, $noreg, !60, !DIExpression(), debug-location !95
    DBG_VALUE %0, $noreg, !59, !DIExpression(), debug-location !95
    %16:rgpr = t2LDRi12 %15, 4, 14 /* CC::al */, $noreg, debug-location !95 :: (load (s32) from %ir.btc_user_copy)
    %2:gpr = t2LDRi12 %15, 8, 14 /* CC::al */, $noreg, debug-location !95 :: (load (s32) from %ir.btc_user_copy_context, align 8)
    %31:rgpr = t2ANDrr %16, %0, 14 /* CC::al */, $noreg, def $cpsr
    DBG_VALUE %2, $noreg, !60, !DIExpression(), debug-location !95
