| Evan Cheng | 77d4771 | 2007-09-20 18:03:23 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as < %s | llc -march=arm | 
|  | 2 | ; RUN: llvm-as < %s | llc -march=arm | grep bxlt | count 1 | 
|  | 3 | ; RUN: llvm-as < %s | llc -march=arm | grep bxgt | count 1 | 
|  | 4 | ; RUN: llvm-as < %s | llc -march=arm | grep bxge | count 1 | 
| Evan Cheng | 8501016 | 2007-06-20 18:26:15 +0000 | [diff] [blame] | 5 |  | 
|  | 6 | define i32 @t1(i32 %a, i32 %b, i32 %c, i32 %d) { | 
|  | 7 | %tmp2 = icmp sgt i32 %c, 10 | 
|  | 8 | %tmp5 = icmp slt i32 %d, 4 | 
|  | 9 | %tmp8 = or i1 %tmp5, %tmp2 | 
|  | 10 | %tmp13 = add i32 %b, %a | 
|  | 11 | br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock | 
|  | 12 |  | 
|  | 13 | cond_true: | 
|  | 14 | %tmp15 = add i32 %tmp13, %c | 
|  | 15 | %tmp1821 = sub i32 %tmp15, %d | 
|  | 16 | ret i32 %tmp1821 | 
|  | 17 |  | 
|  | 18 | UnifiedReturnBlock: | 
|  | 19 | ret i32 %tmp13 | 
|  | 20 | } | 
|  | 21 |  | 
|  | 22 | define i32 @t2(i32 %a, i32 %b, i32 %c, i32 %d) { | 
|  | 23 | %tmp2 = icmp sgt i32 %c, 10 | 
|  | 24 | %tmp5 = icmp slt i32 %d, 4 | 
|  | 25 | %tmp8 = and i1 %tmp5, %tmp2 | 
|  | 26 | %tmp13 = add i32 %b, %a | 
|  | 27 | br i1 %tmp8, label %cond_true, label %UnifiedReturnBlock | 
|  | 28 |  | 
|  | 29 | cond_true: | 
|  | 30 | %tmp15 = add i32 %tmp13, %c | 
|  | 31 | %tmp1821 = sub i32 %tmp15, %d | 
|  | 32 | ret i32 %tmp1821 | 
|  | 33 |  | 
|  | 34 | UnifiedReturnBlock: | 
|  | 35 | ret i32 %tmp13 | 
|  | 36 | } |