# RUN: llc -run-pass=block-placement %s -o - | FileCheck %s

--- |
  target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  target triple = "x86_64-unknown-linux-gnu"
  
  define void @_Z3fn1v() !dbg !6 {
  entry:
    %d = alloca i8, align 1
    br i1 1, label %for.cond.cleanup, label %for.body
  
  for.cond.cleanup:
    ret void
  
  for.body:
    br i1 1, label %for.cond.cleanup, label %for.body.1
  
  for.body.1:
    br i1 1, label %for.cond.cleanup, label %for.body.2
  
  for.body.2:
    br i1 1, label %for.cond.cleanup, label %for.body.3
  
  for.body.3:
    br i1 1, label %for.cond.cleanup, label %for.body.4
  
  for.body.4:
    br i1 1, label %for.cond.cleanup, label %for.body.5
  
  for.body.5:
    br i1 1, label %for.cond.cleanup, label %for.body.6
  
  for.body.6:
    br i1 1, label %for.cond.cleanup, label %for.body.7
  
  for.body.7:
    br i1 1, label %for.cond.cleanup, label %for.body.8
  
  for.body.8:
    br i1 1, label %for.cond.cleanup, label %for.body.9
  
  for.body.9:
    br i1 1, label %for.cond.cleanup, label %for.body.10
  
  for.body.10:
    br i1 1, label %for.cond.cleanup, label %for.body.11
  
  for.body.11:
    %d.0.d.0..12 = load volatile i8, i8* %d, align 1
    call void @llvm.dbg.value(metadata i8 %d.0.d.0..12, metadata !16, metadata !DIExpression()), !dbg !19
    br label %for.cond.cleanup
  }
  
  declare void @llvm.dbg.value(metadata, metadata, metadata)
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!3, !4, !5}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 7.0.0 (trunk 326606)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, globals: !2)
  !1 = !DIFile(filename: "repro.cpp", directory: "/home/mdavis/bugs/bz-189869")
  !2 = !{}
  !3 = !{i32 2, !"Dwarf Version", i32 4}
  !4 = !{i32 2, !"Debug Info Version", i32 3}
  !5 = !{i32 1, !"wchar_size", i32 4}
  !6 = distinct !DISubprogram(name: "fn1", linkageName: "_Z3fn1v", scope: !7, file: !7, line: 4, type: !8, isLocal: false, isDefinition: true, scopeLine: 4, flags: DIFlagPrototyped, isOptimized: true, unit: !0, retainedNodes: !15)
  !7 = !DIFile(filename: "./repro.cpp", directory: "/home/mdavis/bugs/bz-189869")
  !8 = !DISubroutineType(types: !9)
  !9 = !{}
  !15 = !{!16}
  !16 = !DILocalVariable(name: "d", scope: !6, file: !7, line: 6, type: !17)
  !17 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !18)
  !18 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
  !19 = !DILocation(line: 6, column: 17, scope: !6)

...
---
# CHECK: name: _Z3fn1v
# CHECK: bb.10.for.body.9
# CHECK: renamable $al
# CHECK-NEXT: TEST8rr killed renamable $al
# CHECK-NEXT: JCC_1
# CHECK-NOT: $al = IMPLICIT_DEF
# CHECK: bb.12.for.body.10

name:            _Z3fn1v
alignment:       16
tracksRegLiveness: true
constants:       
body:             |
  bb.0.entry:
    successors: %bb.1, %bb.4
    liveins: $rdi, $rbp, $r15, $r14, $r13, $r12, $rbx
  
    renamable $al = MOV8ri 1
    TEST8rr renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.4, 5, implicit killed $eflags
  
  bb.1.for.cond.cleanup:
    successors: %bb.3, %bb.2
    liveins: $ecx, $rdi
  
    renamable $eax = MOV32rm $rsp, 1, $noreg, -16, $noreg 
    CMP32rm killed renamable $eax, $rip, 1, $noreg, $noreg, $noreg, implicit-def $eflags 
    JCC_1 %bb.3, 6, implicit $eflags
  
  bb.2:
    successors: %bb.3
    liveins: $ebp, $ebx, $edx, $esi, $rdi, $r8d, $r9d, $r10d, $r11d, $r12d, $r13d, $r14d, $r15d
  
  bb.3.for.cond.cleanup:
    liveins: $rdi, $xmm3, $xmm4, $xmm5, $xmm6, $xmm7, $xmm9, $xmm13, $xmm14
    RETQ
  
  bb.4.for.body:
    successors: %bb.1, %bb.5
    liveins: $al, $rdi
  
    renamable $ecx = XOR32rr undef $ecx, undef $ecx, implicit-def dead $eflags
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.5.for.body.1:
    successors: %bb.1, %bb.6
    liveins: $ecx, $rdi
  
    renamable $al = MOV8ri 1
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.6.for.body.2:
    successors: %bb.1, %bb.7
    liveins: $ecx, $eflags, $rdi
  
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.7.for.body.3:
    successors: %bb.1, %bb.8
    liveins: $ecx, $rdi
  
    renamable $al = MOV8ri 1
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.8.for.body.4:
    successors: %bb.1, %bb.9
    liveins: $ecx, $eflags, $rdi
  
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.9.for.body.5:
    successors: %bb.1, %bb.10
    liveins: $ecx, $rdi
  
    renamable $al = MOV8ri 1
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.10.for.body.6:
    successors: %bb.1, %bb.11
    liveins: $ecx, $eflags, $rdi
  
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.11.for.body.7:
    successors: %bb.1, %bb.12
    liveins: $ecx, $rdi
  
    renamable $al = MOV8ri 1
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.12.for.body.8:
    successors: %bb.1, %bb.13
    liveins: $ecx, $eflags, $rdi
  
    JCC_1 %bb.1, 5, implicit $eflags
  
  bb.13.for.body.9:
    successors: %bb.14, %bb.15
    liveins: $rdi
  
    renamable $al = MOV8ri 1
    TEST8rr killed renamable $al, renamable $al, implicit-def $eflags
    JCC_1 %bb.15, 4, implicit $eflags
  
  bb.14:
    successors: %bb.1
    liveins: $rdi
  
    renamable $ecx = XOR32rr undef $ecx, undef $ecx, implicit-def dead $eflags
    JMP_1 %bb.1
  
  bb.15.for.body.10:
    successors: %bb.16, %bb.17
    liveins: $eflags, $rdi
  
    JCC_1 %bb.17, 4, implicit killed $eflags
  
  bb.16:
    successors: %bb.1
    liveins: $rdi
  
    JMP_1 %bb.1
  
  bb.17.for.body.11:
    successors: %bb.1
    liveins: $rdi
  
    dead renamable $al = MOV8rm $rsp, 1, $noreg, -121, $noreg 
    DBG_VALUE $al, $noreg, !16, !DIExpression(), debug-location !19
    renamable $ecx = XOR32rr undef $ecx, undef $ecx, implicit-def dead $eflags
    JMP_1 %bb.1
...
