; RUN: opt < %s -passes='print<postdomtree>' 2>&1 | FileCheck %s

@a = external global i32, align 4

define void @fn1() {
entry:
  store i32 5, i32* @a, align 4
  %call = call i32 (...) @foo()
  %tobool = icmp ne i32 %call, 0
  br i1 %tobool, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  br label %loop

loop:                                             ; preds = %loop, %if.then
  %0 = load i32, i32* @a, align 4
  call void @bar(i32 %0)
  br label %loop

if.end:                                           ; preds = %entry
  store i32 6, i32* @a, align 4
  ret void
}

declare i32 @foo(...)
declare void @bar(i32)


; CHECK:      Inorder PostDominator Tree:
; CHECK-NEXT:  [1]  <<exit node>>
; CHECK:         [2] %loop
; CHECK-NEXT:      [3] %if.then
; CHECK: Roots: %if.end %loop
