Krzysztof Parzyszek | b558ae2 | 2016-09-13 14:36:55 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=hexagon < %s | FileCheck %s |
| 2 | ; REQUIRES: asserts |
| 3 | |
| 4 | ; Check that we don't crash. |
| 5 | ; CHECK: call bar |
| 6 | |
| 7 | target triple = "hexagon" |
| 8 | |
| 9 | @debug = external hidden unnamed_addr global i1, align 4 |
| 10 | |
| 11 | ; Function Attrs: nounwind |
| 12 | define void @foo() local_unnamed_addr #0 { |
| 13 | entry: |
| 14 | br label %if.end5 |
| 15 | |
| 16 | if.end5: ; preds = %entry |
| 17 | br i1 undef, label %if.then12, label %if.end13 |
| 18 | |
| 19 | if.then12: ; preds = %if.end5 |
| 20 | unreachable |
| 21 | |
| 22 | if.end13: ; preds = %if.end5 |
| 23 | br label %for.cond |
| 24 | |
| 25 | for.cond: ; preds = %if.end13 |
| 26 | %or.cond288 = or i1 undef, undef |
| 27 | br i1 undef, label %if.then44, label %if.end51 |
| 28 | |
| 29 | if.then44: ; preds = %for.cond |
| 30 | tail call void @bar() #0 |
| 31 | br label %if.end51 |
| 32 | |
| 33 | if.end51: ; preds = %if.then44, %for.cond |
| 34 | %.b433 = load i1, i1* @debug, align 4 |
| 35 | %or.cond290 = and i1 %or.cond288, %.b433 |
| 36 | br i1 %or.cond290, label %if.then55, label %if.end63 |
| 37 | |
| 38 | if.then55: ; preds = %if.end51 |
| 39 | unreachable |
| 40 | |
| 41 | if.end63: ; preds = %if.end51 |
| 42 | unreachable |
| 43 | } |
| 44 | |
| 45 | declare void @bar() local_unnamed_addr #0 |
| 46 | |
| 47 | attributes #0 = { nounwind } |