blob: aaa3652433273471be1dc98bb67ac58c76f4838b [file] [log] [blame]
Krzysztof Parzyszek8c6fb412016-04-22 17:30:13 +00001; RUN: llc -march=hexagon < %s
2; REQUIRES: asserts
3
4target triple = "hexagon"
5
6declare void @foo() #0
7
8define hidden fastcc void @fred(i32 %a, i64 %b, i64 %c) unnamed_addr #1 {
9entry:
10 %cmp17 = icmp ne i64 %c, 0
11 %conv19 = zext i1 %cmp17 to i64
12 %or = or i64 %conv19, %b
13 store i64 %or, i64* undef, align 8
14 br i1 undef, label %if.then44, label %if.end96
15
16if.then44: ; preds = %entry
17 br i1 undef, label %overflow, label %lor.lhs.false
18
19lor.lhs.false: ; preds = %if.then44
20 br i1 undef, label %overflow, label %if.end52
21
22if.end52: ; preds = %lor.lhs.false
23 br i1 undef, label %if.then55, label %if.end96
24
25if.then55: ; preds = %if.end52
26 %cmp60 = icmp slt i32 %a, 0
27 %or.cond = or i1 %cmp60, false
28 %cmp63 = icmp ule i64 %or, undef
29 %.cmp63 = or i1 %cmp63, %or.cond
30 call void @foo()
31 %or.cond299 = and i1 %.cmp63, undef
32 br i1 %or.cond299, label %if.then72, label %if.end73
33
34if.then72: ; preds = %if.then55
35 unreachable
36
37if.end73: ; preds = %if.then55
38 unreachable
39
40if.end96: ; preds = %if.end52, %entry
41 br i1 undef, label %if.end102, label %if.then98
42
43if.then98: ; preds = %if.end96
44 br label %if.end102
45
46if.end102: ; preds = %if.then98, %if.end96
47 unreachable
48
49overflow: ; preds = %lor.lhs.false, %if.then44
50 ret void
51}
52
53attributes #0 = { noinline norecurse nounwind }
54attributes #1 = { noinline nounwind }
55