# 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 !15
# CHECK-NEXT: DBG_VALUE 0, $noreg, !10, !DIExpression(), debug-location !15
# CHECK-NEXT: DBG_VALUE $noreg, $noreg, !10, !DIExpression(), debug-location !15
# CHECK-NEXT: DBG_VALUE $noreg, $noreg, !10, !DIExpression(), debug-location !15
# CHECK-NEXT: %0:rgpr = t2LDRi12 %5, 0, 14 /* CC::al */, $noreg, debug-location !15 :: (load (s32) from %ir..backtrace_user.ctl_default, align 8)
# CHECK-NEXT: %6:rgpr = t2LDRi12 %5, 4, 14 /* CC::al */, $noreg, debug-location !15 :: (load (s32) from %ir.btc_user_copy)
# CHECK-NEXT: DBG_VALUE %6, $noreg, !10, !DIExpression(), debug-location !15
# CHECK-NEXT: %2:gpr = t2LDRi12 %5, 8, 14 /* CC::al */, $noreg, debug-location !15 :: (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, !10, !DIExpression(), debug-location !15
--- |
  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")
  !8 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !11, size: 32)
  !11 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !12)
  !12 = distinct !DICompositeType(tag: DW_TAG_structure_type, size: 32)
  !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !31, size: 32)
  !31 = !DICompositeType(tag: DW_TAG_structure_type, flags: DIFlagFwdDecl)
  !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 = !{!60, !85}
  !60 = !DILocalVariable(scope: !2, type: !22)
  !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
    %16:rgpr = t2LDRi12 %15, 4, 14 /* CC::al */, $noreg, debug-location !95 :: (load (s32) from %ir.btc_user_copy)
    DBG_VALUE %16, $noreg, !60, !DIExpression(), debug-location !95
    %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
