; RUN: llc -mtriple x86_64-- -stop-before peephole-opt -o %t.mir %s
; RUN: llc -mtriple x86_64-- -run-pass none %t.mir -verify-machineinstrs -o - | FileCheck %s

; Unreachable blocks in the machine instr representation are these
; weird empty blocks with no successors.
; The MIR printer used to not print empty lists of successors. However,
; the MIR parser now treats non-printed list of successors as "please
; guess it for me". As a result, the parser tries to guess the list of
; successors and given the block is empty, just assumes it falls through
; the next block.
;
; The following test case used to fail the verifier because the false
; path ended up falling through split.true and now, the definition of
; %v does not dominate all its uses.
; Indeed, we go from the following CFG:
;          entry
;         /      \
;    true (def)   false
;        |
;  split.true (use)
;
; To this one:
;          entry
;         /      \
;    true (def)   false
;        |        /  <-- invalid edge
;  split.true (use)
;
; Because of the invalid edge, we get the "def does not
; dominate all uses" error.
;
; CHECK-LABEL: name: foo
; CHECK-LABEL: bb.{{[0-9]+}}.false:
; CHECK-NEXT: successors:
; CHECK-NOT: %bb.{{[0-9]+}}.split.true
; CHECK-LABEL: bb.{{[0-9]+}}.split.true:
define void @foo(i32* %bar) {
  br i1 undef, label %true, label %false
true:
  %v = load i32, i32* %bar
  br label %split.true
false:
  unreachable
split.true:
  %vInc = add i32 %v, 1
  store i32 %vInc, i32* %bar
  ret void
}
