# RUN: llc -o - %s -O0 -regalloc=fast -run-pass=livedebugvalues | \
# RUN:   FileCheck %s -implicit-check-not=DBG_VALUE
--- |
  target triple = "arm64-apple-ios12.1.0"
  
  declare void @use(i32)
  
  define void @f1(i32 %x) !dbg !6 {
  entry:
    %var = add i32 %x, 1, !dbg !12
    call void @llvm.dbg.value(metadata i32 %var, metadata !9, metadata !DIExpression()), !dbg !12
    br label %artificial-bb-1, !dbg !13
  
  artificial-bb-1:
    br label %artificial-bb-2
  
  artificial-bb-2:
    %invisible = add i32 %var, 1
    br label %return, !dbg !14
  
  return:
    call void @use(i32 %var)
    ret void, !dbg !15
  }
  
  declare void @llvm.dbg.value(metadata, metadata, metadata) #0
  declare void @llvm.stackprotector(i8*, i8**) #1
  
  attributes #0 = { nounwind readnone speculatable }
  attributes #1 = { nounwind }
  
  !llvm.dbg.cu = !{!0}
  !llvm.debugify = !{!3, !4}
  !llvm.module.flags = !{!5}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
  !1 = !DIFile(filename: "compiler-gen-bbs-livedebugvalues.ll", directory: "/")
  !2 = !{}
  !3 = !{i32 6}
  !4 = !{i32 2}
  !5 = !{i32 2, !"Debug Info Version", i32 3}
  !6 = distinct !DISubprogram(name: "f1", linkageName: "f1", scope: null, file: !1, line: 1, type: !7, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: true, unit: !0, retainedNodes: !8)
  !7 = !DISubroutineType(types: !2)
  !8 = !{!9, !11}
  !9 = !DILocalVariable(name: "1", scope: !6, file: !1, line: 1, type: !10)
  !10 = !DIBasicType(name: "ty32", size: 32, encoding: DW_ATE_unsigned)
  !11 = !DILocalVariable(name: "2", scope: !6, file: !1, line: 4, type: !10)
  !12 = !DILocation(line: 1, column: 1, scope: !6)
  !13 = !DILocation(line: 2, column: 1, scope: !6)
  !14 = !DILocation(line: 0, column: 1, scope: !6)
  !15 = !DILocation(line: 4, column: 1, scope: !6)

...
---
# CHECK-LABEL: name: f1
name:            f1
alignment:       4
legalized:       true
regBankSelected: true
selected:        true
tracksRegLiveness: true
frameInfo:       
  stackSize:       32
  maxAlignment:    8
  adjustsStack:    true
  hasCalls:        true
  maxCallFrameSize: 0
stack:           
  - { id: 0, type: spill-slot, offset: -20, size: 4, alignment: 4, stack-id: default }
  - { id: 1, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$lr' }
  - { id: 2, type: spill-slot, offset: -16, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$fp' }
body:             |
  ; CHECK-LABEL: bb.0.entry:
  bb.0.entry:
    liveins: $w0, $lr
  
    $sp = frame-setup SUBXri $sp, 32, 0
    frame-setup STPXi killed $fp, killed $lr, $sp, 2 :: (store 8 into %stack.2), (store 8 into %stack.1)
    frame-setup CFI_INSTRUCTION def_cfa_offset 32
    frame-setup CFI_INSTRUCTION offset $w30, -8, debug-location !12
    frame-setup CFI_INSTRUCTION offset $w29, -16, debug-location !12
    renamable $w0 = ADDWri killed renamable $w0, 1, 0, debug-location !12
    DBG_VALUE renamable $w0, $noreg, !9, !DIExpression(), debug-location !12
    STRWui killed $w0, $sp, 3 :: (store 4 into %stack.0)
    DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12), debug-location !12

    ; CHECK: DBG_VALUE renamable $w0, $noreg, !9, !DIExpression(), debug-location !12
    ; CHECK-NEXT: STRWui killed $w0, $sp, 3 :: (store 4 into %stack.0)
    ; CHECK-NEXT: DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12)
    ; CHECK-NEXT: DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12)
  
  bb.1.artificial-bb-1:
    ; CHECK-LABEL: bb.1.artificial-bb-1:
    ; CHECK: DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12)
      
  bb.2.artificial-bb-2:
    ; CHECK-LABEL: bb.2.artificial-bb-2:
    ; CHECK: DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12)
  
  bb.3.return:
    ; CHECK-LABEL: bb.3.return:
    ; CHECK: DBG_VALUE $sp, 0, !9, !DIExpression(DW_OP_plus_uconst, 12)

    $w0 = LDRWui $sp, 3 :: (load 4 from %stack.0)
    BL @use, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit killed $w0
    $fp, $lr = frame-destroy LDPXi $sp, 2, debug-location !15 :: (load 8 from %stack.2), (load 8 from %stack.1)
    $sp = frame-destroy ADDXri $sp, 32, 0, debug-location !15
    RET undef $lr, debug-location !15
...
