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