Colin LeMahieu | ca8a82d | 2015-06-17 17:19:05 +0000 | [diff] [blame] | 1 | ; RUN: llc -march=hexagon < %s | FileCheck %s |
Jyotsna Verma | 6f635b5 | 2013-02-05 16:42:24 +0000 | [diff] [blame] | 2 | ; Check that we generate compare to predicate register. |
| 3 | |
| 4 | define i32 @compare1(i32 %a, i32 %b) nounwind { |
Colin LeMahieu | de68b66 | 2015-02-05 21:13:25 +0000 | [diff] [blame] | 5 | ; CHECK: p{{[0-3]}}{{ *}}={{ *[!]?}}cmp.eq(r{{[0-9]+}},{{ *}}r{{[0-9]+}}) |
Jyotsna Verma | 6f635b5 | 2013-02-05 16:42:24 +0000 | [diff] [blame] | 6 | entry: |
| 7 | %cmp = icmp ne i32 %a, %b |
| 8 | %add = add nsw i32 %a, %b |
| 9 | %sub = sub nsw i32 %a, %b |
| 10 | %add.sub = select i1 %cmp, i32 %add, i32 %sub |
| 11 | ret i32 %add.sub |
| 12 | } |
| 13 | |
| 14 | define i32 @compare2(i32 %a) nounwind { |
Colin LeMahieu | de68b66 | 2015-02-05 21:13:25 +0000 | [diff] [blame] | 15 | ; CHECK: p{{[0-3]}}{{ *}}={{ *[!]?}}cmp.eq(r{{[0-9]+}},{{ *}}#10) |
Jyotsna Verma | 6f635b5 | 2013-02-05 16:42:24 +0000 | [diff] [blame] | 16 | entry: |
| 17 | %cmp = icmp ne i32 %a, 10 |
| 18 | %add = add nsw i32 %a, 10 |
| 19 | %sub = sub nsw i32 %a, 10 |
| 20 | %add.sub = select i1 %cmp, i32 %add, i32 %sub |
| 21 | ret i32 %add.sub |
| 22 | } |
| 23 | |
| 24 | define i32 @compare3(i32 %a, i32 %b) nounwind { |
| 25 | ; CHECK: p{{[0-3]}}{{ *}}={{ *}}cmp.gt(r{{[0-9]+}},{{ *}}r{{[0-9]+}}) |
| 26 | entry: |
| 27 | %cmp = icmp sgt i32 %a, %b |
| 28 | %sub = sub nsw i32 %a, %b |
| 29 | %add = add nsw i32 %a, %b |
| 30 | %sub.add = select i1 %cmp, i32 %sub, i32 %add |
| 31 | ret i32 %sub.add |
| 32 | } |
| 33 | |
| 34 | define i32 @compare4(i32 %a) nounwind { |
| 35 | ; CHECK: p{{[0-3]}}{{ *}}={{ *}}cmp.gt(r{{[0-9]+}},{{ *}}#10) |
| 36 | entry: |
| 37 | %cmp = icmp sgt i32 %a, 10 |
| 38 | %sub = sub nsw i32 %a, 10 |
| 39 | %add = add nsw i32 %a, 10 |
| 40 | %sub.add = select i1 %cmp, i32 %sub, i32 %add |
| 41 | ret i32 %sub.add |
| 42 | } |
| 43 | |