blob: d9cac8022b241ff98bf56f94da0ad50aa8a0522a [file] [log] [blame]
Dan Gohman30fc5bb2010-05-03 14:35:47 +00001; RUN: llc < %s -march=arm > %t
2; RUN: grep bxlt %t | count 1
3; RUN: grep bxgt %t | count 1
4; RUN: not grep bxge %t
5; RUN: not grep bxle %t
Evan Cheng60c916b2007-06-20 18:26:15 +00006
7define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) {
8 %tmp2 = icmp sgt i32 %c, 10
9 %tmp5 = icmp slt i32 %d, 4
10 %tmp8 = or i1 %tmp5, %tmp2
11 %tmp13 = add i32 %b, %a
12 br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock
13
14cond_true:
15 %tmp15 = add i32 %tmp13, %c
16 %tmp1821 = sub i32 %tmp15, %d
17 ret i32 %tmp1821
18
19UnifiedReturnBlock:
20 ret i32 %tmp13
21}
22
23define i32 @t2(i32 %a, i32 %b, i32 %c, i32 %d) {
24 %tmp2 = icmp sgt i32 %c, 10
25 %tmp5 = icmp slt i32 %d, 4
26 %tmp8 = and i1 %tmp5, %tmp2
27 %tmp13 = add i32 %b, %a
28 br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock
29
30cond_true:
31 %tmp15 = add i32 %tmp13, %c
32 %tmp1821 = sub i32 %tmp15, %d
33 ret i32 %tmp1821
34
35UnifiedReturnBlock:
36 ret i32 %tmp13
37}