blob: 9dd2cdc0dea9c01549181d36d1cd487e14802c2b [file] [log] [blame]
Dan Gohmanb7c0b242009-09-11 18:36:27 +00001; RUN: llc < %s -march=cellspu > %t1.s
Scott Michel1c7a81b2009-01-05 04:05:53 +00002; RUN: grep ceq %t1.s | count 20
3; RUN: grep cgti %t1.s | count 12
4; RUN: grep cgt %t1.s | count 16
5; RUN: grep clgt %t1.s | count 12
6; RUN: grep gb %t1.s | count 12
7; RUN: grep fsm %t1.s | count 10
8; RUN: grep xori %t1.s | count 5
9; RUN: grep selb %t1.s | count 18
Scott Michelf0569be2008-12-27 04:51:36 +000010
11target datalayout = "E-p:32:32:128-f64:64:128-f32:32:128-i64:32:128-i32:32:128-i16:16:128-i8:8:128-i1:8:128-a0:0:128-v128:128:128-s0:128:128"
12target triple = "spu"
13
14; $3 = %arg1, $4 = %arg2, $5 = %val1, $6 = %val2
15; $3 = %arg1, $4 = %val1, $5 = %val2
16;
17; i64 integer comparisons:
18define i64 @icmp_eq_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
19entry:
20 %A = icmp eq i64 %arg1, %arg2
21 %B = select i1 %A, i64 %val1, i64 %val2
22 ret i64 %B
23}
24
25define i1 @icmp_eq_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
26entry:
27 %A = icmp eq i64 %arg1, %arg2
28 ret i1 %A
29}
30
31define i64 @icmp_ne_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
32entry:
33 %A = icmp ne i64 %arg1, %arg2
34 %B = select i1 %A, i64 %val1, i64 %val2
35 ret i64 %B
36}
37
38define i1 @icmp_ne_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
39entry:
40 %A = icmp ne i64 %arg1, %arg2
41 ret i1 %A
42}
43
Scott Micheled741dd2009-01-05 01:34:35 +000044define i64 @icmp_ugt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
45entry:
46 %A = icmp ugt i64 %arg1, %arg2
47 %B = select i1 %A, i64 %val1, i64 %val2
48 ret i64 %B
49}
50
51define i1 @icmp_ugt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
52entry:
53 %A = icmp ugt i64 %arg1, %arg2
54 ret i1 %A
55}
56
Scott Michel1c7a81b2009-01-05 04:05:53 +000057define i64 @icmp_uge_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
58entry:
59 %A = icmp uge i64 %arg1, %arg2
60 %B = select i1 %A, i64 %val1, i64 %val2
61 ret i64 %B
62}
63
64define i1 @icmp_uge_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
65entry:
66 %A = icmp uge i64 %arg1, %arg2
67 ret i1 %A
68}
69
70define i64 @icmp_ult_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
71entry:
72 %A = icmp ult i64 %arg1, %arg2
73 %B = select i1 %A, i64 %val1, i64 %val2
74 ret i64 %B
75}
76
77define i1 @icmp_ult_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
78entry:
79 %A = icmp ult i64 %arg1, %arg2
80 ret i1 %A
81}
82
83define i64 @icmp_ule_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
84entry:
85 %A = icmp ule i64 %arg1, %arg2
86 %B = select i1 %A, i64 %val1, i64 %val2
87 ret i64 %B
88}
89
90define i1 @icmp_ule_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
91entry:
92 %A = icmp ule i64 %arg1, %arg2
93 ret i1 %A
94}
95
96define i64 @icmp_sgt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
97entry:
98 %A = icmp sgt i64 %arg1, %arg2
99 %B = select i1 %A, i64 %val1, i64 %val2
100 ret i64 %B
101}
102
103define i1 @icmp_sgt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
104entry:
105 %A = icmp sgt i64 %arg1, %arg2
106 ret i1 %A
107}
108
109define i64 @icmp_sge_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
110entry:
111 %A = icmp sge i64 %arg1, %arg2
112 %B = select i1 %A, i64 %val1, i64 %val2
113 ret i64 %B
114}
115
116define i1 @icmp_sge_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
117entry:
118 %A = icmp sge i64 %arg1, %arg2
119 ret i1 %A
120}
121
122define i64 @icmp_slt_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
123entry:
124 %A = icmp slt i64 %arg1, %arg2
125 %B = select i1 %A, i64 %val1, i64 %val2
126 ret i64 %B
127}
128
129define i1 @icmp_slt_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
130entry:
131 %A = icmp slt i64 %arg1, %arg2
132 ret i1 %A
133}
134
135define i64 @icmp_sle_select_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
136entry:
137 %A = icmp sle i64 %arg1, %arg2
138 %B = select i1 %A, i64 %val1, i64 %val2
139 ret i64 %B
140}
141
142define i1 @icmp_sle_setcc_i64(i64 %arg1, i64 %arg2, i64 %val1, i64 %val2) nounwind {
143entry:
144 %A = icmp sle i64 %arg1, %arg2
145 ret i1 %A
146}