[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / llvm-ir / icmp.ll
bloba7e0d05544be817d29eab2b107b9cf6d0b1deaa7
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel  -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32
4 define i1 @eq_i32(i32 %a, i32 %b){
5 ; MIPS32-LABEL: eq_i32:
6 ; MIPS32:       # %bb.0: # %entry
7 ; MIPS32-NEXT:    xor $1, $4, $5
8 ; MIPS32-NEXT:    sltiu $2, $1, 1
9 ; MIPS32-NEXT:    jr $ra
10 ; MIPS32-NEXT:    nop
11 entry:
12   %cmp = icmp eq i32 %a, %b
13   ret i1 %cmp
16 define i1 @ne_i32(i32 %a, i32 %b) {
17 ; MIPS32-LABEL: ne_i32:
18 ; MIPS32:       # %bb.0: # %entry
19 ; MIPS32-NEXT:    xor $1, $4, $5
20 ; MIPS32-NEXT:    sltu $2, $zero, $1
21 ; MIPS32-NEXT:    jr $ra
22 ; MIPS32-NEXT:    nop
23 entry:
24   %cmp = icmp ne i32 %a, %b
25   ret i1 %cmp
28 define i1 @sgt_i32(i32 %a, i32 %b) {
29 ; MIPS32-LABEL: sgt_i32:
30 ; MIPS32:       # %bb.0: # %entry
31 ; MIPS32-NEXT:    slt $2, $5, $4
32 ; MIPS32-NEXT:    jr $ra
33 ; MIPS32-NEXT:    nop
34 entry:
35   %cmp = icmp sgt i32 %a, %b
36   ret i1 %cmp
39 define i1 @sge_i32(i32 %a, i32 %b) {
40 ; MIPS32-LABEL: sge_i32:
41 ; MIPS32:       # %bb.0: # %entry
42 ; MIPS32-NEXT:    slt $1, $4, $5
43 ; MIPS32-NEXT:    xori $2, $1, 1
44 ; MIPS32-NEXT:    jr $ra
45 ; MIPS32-NEXT:    nop
46 entry:
47   %cmp = icmp sge i32 %a, %b
48   ret i1 %cmp
51 define i1 @slt_i32(i32 %a, i32 %b) {
52 ; MIPS32-LABEL: slt_i32:
53 ; MIPS32:       # %bb.0: # %entry
54 ; MIPS32-NEXT:    slt $2, $4, $5
55 ; MIPS32-NEXT:    jr $ra
56 ; MIPS32-NEXT:    nop
57 entry:
58   %cmp = icmp slt i32 %a, %b
59   ret i1 %cmp
62 define i1 @sle_i32(i32 %a, i32 %b) {
63 ; MIPS32-LABEL: sle_i32:
64 ; MIPS32:       # %bb.0: # %entry
65 ; MIPS32-NEXT:    slt $1, $5, $4
66 ; MIPS32-NEXT:    xori $2, $1, 1
67 ; MIPS32-NEXT:    jr $ra
68 ; MIPS32-NEXT:    nop
69 entry:
70   %cmp = icmp sle i32 %a, %b
71   ret i1 %cmp
74 define i1 @ugt_i32(i32 %a, i32 %b) {
75 ; MIPS32-LABEL: ugt_i32:
76 ; MIPS32:       # %bb.0: # %entry
77 ; MIPS32-NEXT:    sltu $2, $5, $4
78 ; MIPS32-NEXT:    jr $ra
79 ; MIPS32-NEXT:    nop
80 entry:
81   %cmp = icmp ugt i32 %a, %b
82   ret i1 %cmp
85 define i1 @uge_i32(i32 %a, i32 %b) {
86 ; MIPS32-LABEL: uge_i32:
87 ; MIPS32:       # %bb.0: # %entry
88 ; MIPS32-NEXT:    sltu $1, $4, $5
89 ; MIPS32-NEXT:    xori $2, $1, 1
90 ; MIPS32-NEXT:    jr $ra
91 ; MIPS32-NEXT:    nop
92 entry:
93   %cmp = icmp uge i32 %a, %b
94   ret i1 %cmp
97 define i1 @ult_i32(i32 %a, i32 %b) {
98 ; MIPS32-LABEL: ult_i32:
99 ; MIPS32:       # %bb.0: # %entry
100 ; MIPS32-NEXT:    sltu $2, $4, $5
101 ; MIPS32-NEXT:    jr $ra
102 ; MIPS32-NEXT:    nop
103 entry:
104   %cmp = icmp ult i32 %a, %b
105   ret i1 %cmp
108 define i1 @ule_i32(i32 %a, i32 %b) {
109 ; MIPS32-LABEL: ule_i32:
110 ; MIPS32:       # %bb.0: # %entry
111 ; MIPS32-NEXT:    sltu $1, $5, $4
112 ; MIPS32-NEXT:    xori $2, $1, 1
113 ; MIPS32-NEXT:    jr $ra
114 ; MIPS32-NEXT:    nop
115 entry:
116   %cmp = icmp ule i32 %a, %b
117   ret i1 %cmp
120 define i1 @eq_ptr(i32* %a, i32* %b){
121 ; MIPS32-LABEL: eq_ptr:
122 ; MIPS32:       # %bb.0: # %entry
123 ; MIPS32-NEXT:    xor $1, $4, $5
124 ; MIPS32-NEXT:    sltiu $2, $1, 1
125 ; MIPS32-NEXT:    jr $ra
126 ; MIPS32-NEXT:    nop
127 entry:
128   %cmp = icmp eq i32* %a, %b
129   ret i1 %cmp
132 define i1 @ult_i8(i8 %a, i8 %b) {
133 ; MIPS32-LABEL: ult_i8:
134 ; MIPS32:       # %bb.0: # %entry
135 ; MIPS32-NEXT:    andi $1, $4, 255
136 ; MIPS32-NEXT:    andi $2, $5, 255
137 ; MIPS32-NEXT:    sltu $2, $1, $2
138 ; MIPS32-NEXT:    jr $ra
139 ; MIPS32-NEXT:    nop
140 entry:
141   %cmp = icmp ult i8 %a, %b
142   ret i1 %cmp
145 define i1 @slt_i16(i16 %a, i16 %b) {
146 ; MIPS32-LABEL: slt_i16:
147 ; MIPS32:       # %bb.0: # %entry
148 ; MIPS32-NEXT:    sll $1, $4, 16
149 ; MIPS32-NEXT:    sra $1, $1, 16
150 ; MIPS32-NEXT:    sll $2, $5, 16
151 ; MIPS32-NEXT:    sra $2, $2, 16
152 ; MIPS32-NEXT:    slt $2, $1, $2
153 ; MIPS32-NEXT:    jr $ra
154 ; MIPS32-NEXT:    nop
155 entry:
156   %cmp = icmp slt i16 %a, %b
157   ret i1 %cmp
160 define i1 @eq_i64(i64 %a, i64 %b){
161 ; MIPS32-LABEL: eq_i64:
162 ; MIPS32:       # %bb.0: # %entry
163 ; MIPS32-NEXT:    xor $1, $4, $6
164 ; MIPS32-NEXT:    xor $2, $5, $7
165 ; MIPS32-NEXT:    or $1, $1, $2
166 ; MIPS32-NEXT:    sltiu $2, $1, 1
167 ; MIPS32-NEXT:    jr $ra
168 ; MIPS32-NEXT:    nop
169 entry:
170   %cmp = icmp eq i64 %a, %b
171   ret i1 %cmp
174 define i1 @ne_i64(i64 %a, i64 %b) {
175 ; MIPS32-LABEL: ne_i64:
176 ; MIPS32:       # %bb.0: # %entry
177 ; MIPS32-NEXT:    xor $1, $4, $6
178 ; MIPS32-NEXT:    xor $2, $5, $7
179 ; MIPS32-NEXT:    or $1, $1, $2
180 ; MIPS32-NEXT:    sltu $2, $zero, $1
181 ; MIPS32-NEXT:    jr $ra
182 ; MIPS32-NEXT:    nop
183 entry:
184   %cmp = icmp ne i64 %a, %b
185   ret i1 %cmp
188 define i1 @sgt_i64(i64 %a, i64 %b) {
189 ; MIPS32-LABEL: sgt_i64:
190 ; MIPS32:       # %bb.0: # %entry
191 ; MIPS32-NEXT:    slt $2, $7, $5
192 ; MIPS32-NEXT:    xor $1, $5, $7
193 ; MIPS32-NEXT:    sltiu $3, $1, 1
194 ; MIPS32-NEXT:    sltu $1, $6, $4
195 ; MIPS32-NEXT:    andi $3, $3, 1
196 ; MIPS32-NEXT:    movn $2, $1, $3
197 ; MIPS32-NEXT:    jr $ra
198 ; MIPS32-NEXT:    nop
199 entry:
200   %cmp = icmp sgt i64 %a, %b
201   ret i1 %cmp
204 define i1 @sge_i64(i64 %a, i64 %b) {
205 ; MIPS32-LABEL: sge_i64:
206 ; MIPS32:       # %bb.0: # %entry
207 ; MIPS32-NEXT:    slt $1, $5, $7
208 ; MIPS32-NEXT:    xori $2, $1, 1
209 ; MIPS32-NEXT:    xor $1, $5, $7
210 ; MIPS32-NEXT:    sltiu $3, $1, 1
211 ; MIPS32-NEXT:    sltu $1, $4, $6
212 ; MIPS32-NEXT:    xori $1, $1, 1
213 ; MIPS32-NEXT:    andi $3, $3, 1
214 ; MIPS32-NEXT:    movn $2, $1, $3
215 ; MIPS32-NEXT:    jr $ra
216 ; MIPS32-NEXT:    nop
217 entry:
218   %cmp = icmp sge i64 %a, %b
219   ret i1 %cmp
222 define i1 @slt_i64(i64 %a, i64 %b) {
223 ; MIPS32-LABEL: slt_i64:
224 ; MIPS32:       # %bb.0: # %entry
225 ; MIPS32-NEXT:    slt $2, $5, $7
226 ; MIPS32-NEXT:    xor $1, $5, $7
227 ; MIPS32-NEXT:    sltiu $3, $1, 1
228 ; MIPS32-NEXT:    sltu $1, $4, $6
229 ; MIPS32-NEXT:    andi $3, $3, 1
230 ; MIPS32-NEXT:    movn $2, $1, $3
231 ; MIPS32-NEXT:    jr $ra
232 ; MIPS32-NEXT:    nop
233 entry:
234   %cmp = icmp slt i64 %a, %b
235   ret i1 %cmp
238 define i1 @sle_i64(i64 %a, i64 %b) {
239 ; MIPS32-LABEL: sle_i64:
240 ; MIPS32:       # %bb.0: # %entry
241 ; MIPS32-NEXT:    slt $1, $7, $5
242 ; MIPS32-NEXT:    xori $2, $1, 1
243 ; MIPS32-NEXT:    xor $1, $5, $7
244 ; MIPS32-NEXT:    sltiu $3, $1, 1
245 ; MIPS32-NEXT:    sltu $1, $6, $4
246 ; MIPS32-NEXT:    xori $1, $1, 1
247 ; MIPS32-NEXT:    andi $3, $3, 1
248 ; MIPS32-NEXT:    movn $2, $1, $3
249 ; MIPS32-NEXT:    jr $ra
250 ; MIPS32-NEXT:    nop
251 entry:
252   %cmp = icmp sle i64 %a, %b
253   ret i1 %cmp
256 define i1 @ugt_i64(i64 %a, i64 %b) {
257 ; MIPS32-LABEL: ugt_i64:
258 ; MIPS32:       # %bb.0: # %entry
259 ; MIPS32-NEXT:    sltu $2, $7, $5
260 ; MIPS32-NEXT:    xor $1, $5, $7
261 ; MIPS32-NEXT:    sltiu $3, $1, 1
262 ; MIPS32-NEXT:    sltu $1, $6, $4
263 ; MIPS32-NEXT:    andi $3, $3, 1
264 ; MIPS32-NEXT:    movn $2, $1, $3
265 ; MIPS32-NEXT:    jr $ra
266 ; MIPS32-NEXT:    nop
267 entry:
268   %cmp = icmp ugt i64 %a, %b
269   ret i1 %cmp
272 define i1 @uge_i64(i64 %a, i64 %b) {
273 ; MIPS32-LABEL: uge_i64:
274 ; MIPS32:       # %bb.0: # %entry
275 ; MIPS32-NEXT:    sltu $1, $5, $7
276 ; MIPS32-NEXT:    xori $2, $1, 1
277 ; MIPS32-NEXT:    xor $1, $5, $7
278 ; MIPS32-NEXT:    sltiu $3, $1, 1
279 ; MIPS32-NEXT:    sltu $1, $4, $6
280 ; MIPS32-NEXT:    xori $1, $1, 1
281 ; MIPS32-NEXT:    andi $3, $3, 1
282 ; MIPS32-NEXT:    movn $2, $1, $3
283 ; MIPS32-NEXT:    jr $ra
284 ; MIPS32-NEXT:    nop
285 entry:
286   %cmp = icmp uge i64 %a, %b
287   ret i1 %cmp
290 define i1 @ult_i64(i64 %a, i64 %b) {
291 ; MIPS32-LABEL: ult_i64:
292 ; MIPS32:       # %bb.0: # %entry
293 ; MIPS32-NEXT:    sltu $2, $5, $7
294 ; MIPS32-NEXT:    xor $1, $5, $7
295 ; MIPS32-NEXT:    sltiu $3, $1, 1
296 ; MIPS32-NEXT:    sltu $1, $4, $6
297 ; MIPS32-NEXT:    andi $3, $3, 1
298 ; MIPS32-NEXT:    movn $2, $1, $3
299 ; MIPS32-NEXT:    jr $ra
300 ; MIPS32-NEXT:    nop
301 entry:
302   %cmp = icmp ult i64 %a, %b
303   ret i1 %cmp
306 define i1 @ule_i64(i64 %a, i64 %b) {
307 ; MIPS32-LABEL: ule_i64:
308 ; MIPS32:       # %bb.0: # %entry
309 ; MIPS32-NEXT:    sltu $1, $7, $5
310 ; MIPS32-NEXT:    xori $2, $1, 1
311 ; MIPS32-NEXT:    xor $1, $5, $7
312 ; MIPS32-NEXT:    sltiu $3, $1, 1
313 ; MIPS32-NEXT:    sltu $1, $6, $4
314 ; MIPS32-NEXT:    xori $1, $1, 1
315 ; MIPS32-NEXT:    andi $3, $3, 1
316 ; MIPS32-NEXT:    movn $2, $1, $3
317 ; MIPS32-NEXT:    jr $ra
318 ; MIPS32-NEXT:    nop
319 entry:
320   %cmp = icmp ule i64 %a, %b
321   ret i1 %cmp