blob: c97a736f10afc56ffc3a658c2bded3718f3a5832 [file] [log] [blame]
Colin LeMahieuca8a82d2015-06-17 17:19:05 +00001; RUN: llc -march=hexagon < %s | FileCheck %s
Jyotsna Verma6f635b52013-02-05 16:42:24 +00002; Check that we generate compare to predicate register.
3
4define i32 @compare1(i32 %a, i32 %b) nounwind {
Colin LeMahieude68b662015-02-05 21:13:25 +00005; CHECK: p{{[0-3]}}{{ *}}={{ *[!]?}}cmp.eq(r{{[0-9]+}},{{ *}}r{{[0-9]+}})
Jyotsna Verma6f635b52013-02-05 16:42:24 +00006entry:
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
14define i32 @compare2(i32 %a) nounwind {
Colin LeMahieude68b662015-02-05 21:13:25 +000015; CHECK: p{{[0-3]}}{{ *}}={{ *[!]?}}cmp.eq(r{{[0-9]+}},{{ *}}#10)
Jyotsna Verma6f635b52013-02-05 16:42:24 +000016entry:
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
24define i32 @compare3(i32 %a, i32 %b) nounwind {
25; CHECK: p{{[0-3]}}{{ *}}={{ *}}cmp.gt(r{{[0-9]+}},{{ *}}r{{[0-9]+}})
26entry:
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
34define i32 @compare4(i32 %a) nounwind {
35; CHECK: p{{[0-3]}}{{ *}}={{ *}}cmp.gt(r{{[0-9]+}},{{ *}}#10)
36entry:
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