; RUN: llc -march=hexagon < %s | FileCheck %s
; REQUIRES: asserts

; Check that we don't crash.
; CHECK: call bar

target triple = "hexagon"

@debug = external hidden unnamed_addr global i1, align 4

; Function Attrs: nounwind
define void @foo() local_unnamed_addr #0 {
entry:
  br label %if.end5

if.end5:                                          ; preds = %entry
  br i1 undef, label %if.then12, label %if.end13

if.then12:                                        ; preds = %if.end5
  unreachable

if.end13:                                         ; preds = %if.end5
  br label %for.cond

for.cond:                                         ; preds = %if.end13
  %or.cond288 = or i1 undef, undef
  br i1 undef, label %if.then44, label %if.end51

if.then44:                                        ; preds = %for.cond
  tail call void @bar() #0
  br label %if.end51

if.end51:                                         ; preds = %if.then44, %for.cond
  %.b433 = load i1, i1* @debug, align 4
  %or.cond290 = and i1 %or.cond288, %.b433
  br i1 %or.cond290, label %if.then55, label %if.end63

if.then55:                                        ; preds = %if.end51
  unreachable

if.end63:                                         ; preds = %if.end51
  unreachable
}

declare void @bar() local_unnamed_addr #0

attributes #0 = { nounwind }
