1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -global-isel=0 -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,SDAG
3 ; RUN: llc < %s -fast-isel -fast-isel-abort=1 -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,FASTISEL
4 ; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X64
5 ; RUN: llc < %s -global-isel=0 -mtriple=i686-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X86,SDAG
6 ; RUN: llc < %s -fast-isel -fast-isel-abort=1 -mtriple=i686-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X86,FASTISEL
7 ; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=i686-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X86
9 define i32 @icmp_eq_2(i32 %x, i32 %y) {
10 ; X64-LABEL: icmp_eq_2:
12 ; X64-NEXT: cmpl %esi, %edi
13 ; X64-NEXT: jne LBB0_1
14 ; X64-NEXT: ## %bb.2: ## %bb1
15 ; X64-NEXT: xorl %eax, %eax
17 ; X64-NEXT: LBB0_1: ## %bb2
18 ; X64-NEXT: movl $1, %eax
21 ; GISEL-X64-LABEL: icmp_eq_2:
22 ; GISEL-X64: ## %bb.0:
23 ; GISEL-X64-NEXT: cmpl %esi, %edi
24 ; GISEL-X64-NEXT: sete %al
25 ; GISEL-X64-NEXT: testb $1, %al
26 ; GISEL-X64-NEXT: je LBB0_1
27 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
28 ; GISEL-X64-NEXT: xorl %eax, %eax
29 ; GISEL-X64-NEXT: retq
30 ; GISEL-X64-NEXT: LBB0_1: ## %bb2
31 ; GISEL-X64-NEXT: movl $1, %eax
32 ; GISEL-X64-NEXT: retq
34 ; X86-LABEL: icmp_eq_2:
36 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
37 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
38 ; X86-NEXT: jne LBB0_1
39 ; X86-NEXT: ## %bb.2: ## %bb1
40 ; X86-NEXT: xorl %eax, %eax
42 ; X86-NEXT: LBB0_1: ## %bb2
43 ; X86-NEXT: movl $1, %eax
46 ; GISEL-X86-LABEL: icmp_eq_2:
47 ; GISEL-X86: ## %bb.0:
48 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
49 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
50 ; GISEL-X86-NEXT: sete %al
51 ; GISEL-X86-NEXT: testb $1, %al
52 ; GISEL-X86-NEXT: je LBB0_1
53 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
54 ; GISEL-X86-NEXT: xorl %eax, %eax
55 ; GISEL-X86-NEXT: retl
56 ; GISEL-X86-NEXT: LBB0_1: ## %bb2
57 ; GISEL-X86-NEXT: movl $1, %eax
58 ; GISEL-X86-NEXT: retl
59 %1 = icmp eq i32 %x, %y
60 br i1 %1, label %bb1, label %bb2
67 define i32 @icmp_ne_2(i32 %x, i32 %y) {
68 ; X64-LABEL: icmp_ne_2:
70 ; X64-NEXT: cmpl %esi, %edi
72 ; X64-NEXT: ## %bb.2: ## %bb1
73 ; X64-NEXT: xorl %eax, %eax
75 ; X64-NEXT: LBB1_1: ## %bb2
76 ; X64-NEXT: movl $1, %eax
79 ; GISEL-X64-LABEL: icmp_ne_2:
80 ; GISEL-X64: ## %bb.0:
81 ; GISEL-X64-NEXT: cmpl %esi, %edi
82 ; GISEL-X64-NEXT: setne %al
83 ; GISEL-X64-NEXT: testb $1, %al
84 ; GISEL-X64-NEXT: je LBB1_1
85 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
86 ; GISEL-X64-NEXT: xorl %eax, %eax
87 ; GISEL-X64-NEXT: retq
88 ; GISEL-X64-NEXT: LBB1_1: ## %bb2
89 ; GISEL-X64-NEXT: movl $1, %eax
90 ; GISEL-X64-NEXT: retq
92 ; X86-LABEL: icmp_ne_2:
94 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
95 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
97 ; X86-NEXT: ## %bb.2: ## %bb1
98 ; X86-NEXT: xorl %eax, %eax
100 ; X86-NEXT: LBB1_1: ## %bb2
101 ; X86-NEXT: movl $1, %eax
104 ; GISEL-X86-LABEL: icmp_ne_2:
105 ; GISEL-X86: ## %bb.0:
106 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
107 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
108 ; GISEL-X86-NEXT: setne %al
109 ; GISEL-X86-NEXT: testb $1, %al
110 ; GISEL-X86-NEXT: je LBB1_1
111 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
112 ; GISEL-X86-NEXT: xorl %eax, %eax
113 ; GISEL-X86-NEXT: retl
114 ; GISEL-X86-NEXT: LBB1_1: ## %bb2
115 ; GISEL-X86-NEXT: movl $1, %eax
116 ; GISEL-X86-NEXT: retl
117 %1 = icmp ne i32 %x, %y
118 br i1 %1, label %bb1, label %bb2
125 define i32 @icmp_ugt_2(i32 %x, i32 %y) {
126 ; X64-LABEL: icmp_ugt_2:
128 ; X64-NEXT: cmpl %esi, %edi
129 ; X64-NEXT: jbe LBB2_1
130 ; X64-NEXT: ## %bb.2: ## %bb1
131 ; X64-NEXT: xorl %eax, %eax
133 ; X64-NEXT: LBB2_1: ## %bb2
134 ; X64-NEXT: movl $1, %eax
137 ; GISEL-X64-LABEL: icmp_ugt_2:
138 ; GISEL-X64: ## %bb.0:
139 ; GISEL-X64-NEXT: cmpl %esi, %edi
140 ; GISEL-X64-NEXT: seta %al
141 ; GISEL-X64-NEXT: testb $1, %al
142 ; GISEL-X64-NEXT: je LBB2_1
143 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
144 ; GISEL-X64-NEXT: xorl %eax, %eax
145 ; GISEL-X64-NEXT: retq
146 ; GISEL-X64-NEXT: LBB2_1: ## %bb2
147 ; GISEL-X64-NEXT: movl $1, %eax
148 ; GISEL-X64-NEXT: retq
150 ; X86-LABEL: icmp_ugt_2:
152 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
153 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
154 ; X86-NEXT: jbe LBB2_1
155 ; X86-NEXT: ## %bb.2: ## %bb1
156 ; X86-NEXT: xorl %eax, %eax
158 ; X86-NEXT: LBB2_1: ## %bb2
159 ; X86-NEXT: movl $1, %eax
162 ; GISEL-X86-LABEL: icmp_ugt_2:
163 ; GISEL-X86: ## %bb.0:
164 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
165 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
166 ; GISEL-X86-NEXT: seta %al
167 ; GISEL-X86-NEXT: testb $1, %al
168 ; GISEL-X86-NEXT: je LBB2_1
169 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
170 ; GISEL-X86-NEXT: xorl %eax, %eax
171 ; GISEL-X86-NEXT: retl
172 ; GISEL-X86-NEXT: LBB2_1: ## %bb2
173 ; GISEL-X86-NEXT: movl $1, %eax
174 ; GISEL-X86-NEXT: retl
175 %1 = icmp ugt i32 %x, %y
176 br i1 %1, label %bb1, label %bb2
183 define i32 @icmp_uge_2(i32 %x, i32 %y) {
184 ; X64-LABEL: icmp_uge_2:
186 ; X64-NEXT: cmpl %esi, %edi
187 ; X64-NEXT: jb LBB3_1
188 ; X64-NEXT: ## %bb.2: ## %bb1
189 ; X64-NEXT: xorl %eax, %eax
191 ; X64-NEXT: LBB3_1: ## %bb2
192 ; X64-NEXT: movl $1, %eax
195 ; GISEL-X64-LABEL: icmp_uge_2:
196 ; GISEL-X64: ## %bb.0:
197 ; GISEL-X64-NEXT: cmpl %esi, %edi
198 ; GISEL-X64-NEXT: setae %al
199 ; GISEL-X64-NEXT: testb $1, %al
200 ; GISEL-X64-NEXT: je LBB3_1
201 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
202 ; GISEL-X64-NEXT: xorl %eax, %eax
203 ; GISEL-X64-NEXT: retq
204 ; GISEL-X64-NEXT: LBB3_1: ## %bb2
205 ; GISEL-X64-NEXT: movl $1, %eax
206 ; GISEL-X64-NEXT: retq
208 ; X86-LABEL: icmp_uge_2:
210 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
211 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
212 ; X86-NEXT: jb LBB3_1
213 ; X86-NEXT: ## %bb.2: ## %bb1
214 ; X86-NEXT: xorl %eax, %eax
216 ; X86-NEXT: LBB3_1: ## %bb2
217 ; X86-NEXT: movl $1, %eax
220 ; GISEL-X86-LABEL: icmp_uge_2:
221 ; GISEL-X86: ## %bb.0:
222 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
223 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
224 ; GISEL-X86-NEXT: setae %al
225 ; GISEL-X86-NEXT: testb $1, %al
226 ; GISEL-X86-NEXT: je LBB3_1
227 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
228 ; GISEL-X86-NEXT: xorl %eax, %eax
229 ; GISEL-X86-NEXT: retl
230 ; GISEL-X86-NEXT: LBB3_1: ## %bb2
231 ; GISEL-X86-NEXT: movl $1, %eax
232 ; GISEL-X86-NEXT: retl
233 %1 = icmp uge i32 %x, %y
234 br i1 %1, label %bb1, label %bb2
241 define i32 @icmp_ult_2(i32 %x, i32 %y) {
242 ; X64-LABEL: icmp_ult_2:
244 ; X64-NEXT: cmpl %esi, %edi
245 ; X64-NEXT: jae LBB4_1
246 ; X64-NEXT: ## %bb.2: ## %bb1
247 ; X64-NEXT: xorl %eax, %eax
249 ; X64-NEXT: LBB4_1: ## %bb2
250 ; X64-NEXT: movl $1, %eax
253 ; GISEL-X64-LABEL: icmp_ult_2:
254 ; GISEL-X64: ## %bb.0:
255 ; GISEL-X64-NEXT: cmpl %esi, %edi
256 ; GISEL-X64-NEXT: setb %al
257 ; GISEL-X64-NEXT: testb $1, %al
258 ; GISEL-X64-NEXT: je LBB4_1
259 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
260 ; GISEL-X64-NEXT: xorl %eax, %eax
261 ; GISEL-X64-NEXT: retq
262 ; GISEL-X64-NEXT: LBB4_1: ## %bb2
263 ; GISEL-X64-NEXT: movl $1, %eax
264 ; GISEL-X64-NEXT: retq
266 ; X86-LABEL: icmp_ult_2:
268 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
269 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
270 ; X86-NEXT: jae LBB4_1
271 ; X86-NEXT: ## %bb.2: ## %bb1
272 ; X86-NEXT: xorl %eax, %eax
274 ; X86-NEXT: LBB4_1: ## %bb2
275 ; X86-NEXT: movl $1, %eax
278 ; GISEL-X86-LABEL: icmp_ult_2:
279 ; GISEL-X86: ## %bb.0:
280 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
281 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
282 ; GISEL-X86-NEXT: setb %al
283 ; GISEL-X86-NEXT: testb $1, %al
284 ; GISEL-X86-NEXT: je LBB4_1
285 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
286 ; GISEL-X86-NEXT: xorl %eax, %eax
287 ; GISEL-X86-NEXT: retl
288 ; GISEL-X86-NEXT: LBB4_1: ## %bb2
289 ; GISEL-X86-NEXT: movl $1, %eax
290 ; GISEL-X86-NEXT: retl
291 %1 = icmp ult i32 %x, %y
292 br i1 %1, label %bb1, label %bb2
299 define i32 @icmp_ule_2(i32 %x, i32 %y) {
300 ; X64-LABEL: icmp_ule_2:
302 ; X64-NEXT: cmpl %esi, %edi
303 ; X64-NEXT: ja LBB5_1
304 ; X64-NEXT: ## %bb.2: ## %bb1
305 ; X64-NEXT: xorl %eax, %eax
307 ; X64-NEXT: LBB5_1: ## %bb2
308 ; X64-NEXT: movl $1, %eax
311 ; GISEL-X64-LABEL: icmp_ule_2:
312 ; GISEL-X64: ## %bb.0:
313 ; GISEL-X64-NEXT: cmpl %esi, %edi
314 ; GISEL-X64-NEXT: setbe %al
315 ; GISEL-X64-NEXT: testb $1, %al
316 ; GISEL-X64-NEXT: je LBB5_1
317 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
318 ; GISEL-X64-NEXT: xorl %eax, %eax
319 ; GISEL-X64-NEXT: retq
320 ; GISEL-X64-NEXT: LBB5_1: ## %bb2
321 ; GISEL-X64-NEXT: movl $1, %eax
322 ; GISEL-X64-NEXT: retq
324 ; X86-LABEL: icmp_ule_2:
326 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
327 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
328 ; X86-NEXT: ja LBB5_1
329 ; X86-NEXT: ## %bb.2: ## %bb1
330 ; X86-NEXT: xorl %eax, %eax
332 ; X86-NEXT: LBB5_1: ## %bb2
333 ; X86-NEXT: movl $1, %eax
336 ; GISEL-X86-LABEL: icmp_ule_2:
337 ; GISEL-X86: ## %bb.0:
338 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
339 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
340 ; GISEL-X86-NEXT: setbe %al
341 ; GISEL-X86-NEXT: testb $1, %al
342 ; GISEL-X86-NEXT: je LBB5_1
343 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
344 ; GISEL-X86-NEXT: xorl %eax, %eax
345 ; GISEL-X86-NEXT: retl
346 ; GISEL-X86-NEXT: LBB5_1: ## %bb2
347 ; GISEL-X86-NEXT: movl $1, %eax
348 ; GISEL-X86-NEXT: retl
349 %1 = icmp ule i32 %x, %y
350 br i1 %1, label %bb1, label %bb2
357 define i32 @icmp_sgt_2(i32 %x, i32 %y) {
358 ; X64-LABEL: icmp_sgt_2:
360 ; X64-NEXT: cmpl %esi, %edi
361 ; X64-NEXT: jle LBB6_1
362 ; X64-NEXT: ## %bb.2: ## %bb1
363 ; X64-NEXT: xorl %eax, %eax
365 ; X64-NEXT: LBB6_1: ## %bb2
366 ; X64-NEXT: movl $1, %eax
369 ; GISEL-X64-LABEL: icmp_sgt_2:
370 ; GISEL-X64: ## %bb.0:
371 ; GISEL-X64-NEXT: cmpl %esi, %edi
372 ; GISEL-X64-NEXT: setg %al
373 ; GISEL-X64-NEXT: testb $1, %al
374 ; GISEL-X64-NEXT: je LBB6_1
375 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
376 ; GISEL-X64-NEXT: xorl %eax, %eax
377 ; GISEL-X64-NEXT: retq
378 ; GISEL-X64-NEXT: LBB6_1: ## %bb2
379 ; GISEL-X64-NEXT: movl $1, %eax
380 ; GISEL-X64-NEXT: retq
382 ; X86-LABEL: icmp_sgt_2:
384 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
385 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
386 ; X86-NEXT: jle LBB6_1
387 ; X86-NEXT: ## %bb.2: ## %bb1
388 ; X86-NEXT: xorl %eax, %eax
390 ; X86-NEXT: LBB6_1: ## %bb2
391 ; X86-NEXT: movl $1, %eax
394 ; GISEL-X86-LABEL: icmp_sgt_2:
395 ; GISEL-X86: ## %bb.0:
396 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
397 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
398 ; GISEL-X86-NEXT: setg %al
399 ; GISEL-X86-NEXT: testb $1, %al
400 ; GISEL-X86-NEXT: je LBB6_1
401 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
402 ; GISEL-X86-NEXT: xorl %eax, %eax
403 ; GISEL-X86-NEXT: retl
404 ; GISEL-X86-NEXT: LBB6_1: ## %bb2
405 ; GISEL-X86-NEXT: movl $1, %eax
406 ; GISEL-X86-NEXT: retl
407 %1 = icmp sgt i32 %x, %y
408 br i1 %1, label %bb1, label %bb2
415 define i32 @icmp_sge_2(i32 %x, i32 %y) {
416 ; X64-LABEL: icmp_sge_2:
418 ; X64-NEXT: cmpl %esi, %edi
419 ; X64-NEXT: jl LBB7_1
420 ; X64-NEXT: ## %bb.2: ## %bb1
421 ; X64-NEXT: xorl %eax, %eax
423 ; X64-NEXT: LBB7_1: ## %bb2
424 ; X64-NEXT: movl $1, %eax
427 ; GISEL-X64-LABEL: icmp_sge_2:
428 ; GISEL-X64: ## %bb.0:
429 ; GISEL-X64-NEXT: cmpl %esi, %edi
430 ; GISEL-X64-NEXT: setge %al
431 ; GISEL-X64-NEXT: testb $1, %al
432 ; GISEL-X64-NEXT: je LBB7_1
433 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
434 ; GISEL-X64-NEXT: xorl %eax, %eax
435 ; GISEL-X64-NEXT: retq
436 ; GISEL-X64-NEXT: LBB7_1: ## %bb2
437 ; GISEL-X64-NEXT: movl $1, %eax
438 ; GISEL-X64-NEXT: retq
440 ; X86-LABEL: icmp_sge_2:
442 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
443 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
444 ; X86-NEXT: jl LBB7_1
445 ; X86-NEXT: ## %bb.2: ## %bb1
446 ; X86-NEXT: xorl %eax, %eax
448 ; X86-NEXT: LBB7_1: ## %bb2
449 ; X86-NEXT: movl $1, %eax
452 ; GISEL-X86-LABEL: icmp_sge_2:
453 ; GISEL-X86: ## %bb.0:
454 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
455 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
456 ; GISEL-X86-NEXT: setge %al
457 ; GISEL-X86-NEXT: testb $1, %al
458 ; GISEL-X86-NEXT: je LBB7_1
459 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
460 ; GISEL-X86-NEXT: xorl %eax, %eax
461 ; GISEL-X86-NEXT: retl
462 ; GISEL-X86-NEXT: LBB7_1: ## %bb2
463 ; GISEL-X86-NEXT: movl $1, %eax
464 ; GISEL-X86-NEXT: retl
465 %1 = icmp sge i32 %x, %y
466 br i1 %1, label %bb1, label %bb2
473 define i32 @icmp_slt_2(i32 %x, i32 %y) {
474 ; X64-LABEL: icmp_slt_2:
476 ; X64-NEXT: cmpl %esi, %edi
477 ; X64-NEXT: jge LBB8_1
478 ; X64-NEXT: ## %bb.2: ## %bb1
479 ; X64-NEXT: xorl %eax, %eax
481 ; X64-NEXT: LBB8_1: ## %bb2
482 ; X64-NEXT: movl $1, %eax
485 ; GISEL-X64-LABEL: icmp_slt_2:
486 ; GISEL-X64: ## %bb.0:
487 ; GISEL-X64-NEXT: cmpl %esi, %edi
488 ; GISEL-X64-NEXT: setl %al
489 ; GISEL-X64-NEXT: testb $1, %al
490 ; GISEL-X64-NEXT: je LBB8_1
491 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
492 ; GISEL-X64-NEXT: xorl %eax, %eax
493 ; GISEL-X64-NEXT: retq
494 ; GISEL-X64-NEXT: LBB8_1: ## %bb2
495 ; GISEL-X64-NEXT: movl $1, %eax
496 ; GISEL-X64-NEXT: retq
498 ; X86-LABEL: icmp_slt_2:
500 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
501 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
502 ; X86-NEXT: jge LBB8_1
503 ; X86-NEXT: ## %bb.2: ## %bb1
504 ; X86-NEXT: xorl %eax, %eax
506 ; X86-NEXT: LBB8_1: ## %bb2
507 ; X86-NEXT: movl $1, %eax
510 ; GISEL-X86-LABEL: icmp_slt_2:
511 ; GISEL-X86: ## %bb.0:
512 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
513 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
514 ; GISEL-X86-NEXT: setl %al
515 ; GISEL-X86-NEXT: testb $1, %al
516 ; GISEL-X86-NEXT: je LBB8_1
517 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
518 ; GISEL-X86-NEXT: xorl %eax, %eax
519 ; GISEL-X86-NEXT: retl
520 ; GISEL-X86-NEXT: LBB8_1: ## %bb2
521 ; GISEL-X86-NEXT: movl $1, %eax
522 ; GISEL-X86-NEXT: retl
523 %1 = icmp slt i32 %x, %y
524 br i1 %1, label %bb1, label %bb2
531 define i32 @icmp_sle_2(i32 %x, i32 %y) {
532 ; X64-LABEL: icmp_sle_2:
534 ; X64-NEXT: cmpl %esi, %edi
535 ; X64-NEXT: jg LBB9_1
536 ; X64-NEXT: ## %bb.2: ## %bb1
537 ; X64-NEXT: xorl %eax, %eax
539 ; X64-NEXT: LBB9_1: ## %bb2
540 ; X64-NEXT: movl $1, %eax
543 ; GISEL-X64-LABEL: icmp_sle_2:
544 ; GISEL-X64: ## %bb.0:
545 ; GISEL-X64-NEXT: cmpl %esi, %edi
546 ; GISEL-X64-NEXT: setle %al
547 ; GISEL-X64-NEXT: testb $1, %al
548 ; GISEL-X64-NEXT: je LBB9_1
549 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
550 ; GISEL-X64-NEXT: xorl %eax, %eax
551 ; GISEL-X64-NEXT: retq
552 ; GISEL-X64-NEXT: LBB9_1: ## %bb2
553 ; GISEL-X64-NEXT: movl $1, %eax
554 ; GISEL-X64-NEXT: retq
556 ; X86-LABEL: icmp_sle_2:
558 ; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
559 ; X86-NEXT: cmpl {{[0-9]+\(%esp\), %eax|%eax, [0-9]+\(%esp\)}}
560 ; X86-NEXT: jg LBB9_1
561 ; X86-NEXT: ## %bb.2: ## %bb1
562 ; X86-NEXT: xorl %eax, %eax
564 ; X86-NEXT: LBB9_1: ## %bb2
565 ; X86-NEXT: movl $1, %eax
568 ; GISEL-X86-LABEL: icmp_sle_2:
569 ; GISEL-X86: ## %bb.0:
570 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
571 ; GISEL-X86-NEXT: cmpl %eax, {{[0-9]+}}(%esp)
572 ; GISEL-X86-NEXT: setle %al
573 ; GISEL-X86-NEXT: testb $1, %al
574 ; GISEL-X86-NEXT: je LBB9_1
575 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
576 ; GISEL-X86-NEXT: xorl %eax, %eax
577 ; GISEL-X86-NEXT: retl
578 ; GISEL-X86-NEXT: LBB9_1: ## %bb2
579 ; GISEL-X86-NEXT: movl $1, %eax
580 ; GISEL-X86-NEXT: retl
581 %1 = icmp sle i32 %x, %y
582 br i1 %1, label %bb1, label %bb2
589 define i32 @icmp_eq(i32 %x) {
590 ; SDAG-LABEL: icmp_eq:
592 ; SDAG-NEXT: movb $1, %al
593 ; SDAG-NEXT: testb %al, %al
594 ; SDAG-NEXT: je LBB10_1
595 ; SDAG-NEXT: ## %bb.2: ## %bb1
596 ; SDAG-NEXT: xorl %eax, %eax
597 ; SDAG-NEXT: ret{{q|l}}
598 ; SDAG-NEXT: LBB10_1: ## %bb2
599 ; SDAG-NEXT: movl $1, %eax
600 ; SDAG-NEXT: ret{{q|l}}
602 ; FASTISEL-LABEL: icmp_eq:
603 ; FASTISEL: ## %bb.0:
604 ; FASTISEL-NEXT: xorl %eax, %eax
605 ; FASTISEL-NEXT: ret{{q|l}}
607 ; GISEL-X64-LABEL: icmp_eq:
608 ; GISEL-X64: ## %bb.0:
609 ; GISEL-X64-NEXT: cmpl %edi, %edi
610 ; GISEL-X64-NEXT: sete %al
611 ; GISEL-X64-NEXT: testb $1, %al
612 ; GISEL-X64-NEXT: je LBB10_1
613 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
614 ; GISEL-X64-NEXT: xorl %eax, %eax
615 ; GISEL-X64-NEXT: retq
616 ; GISEL-X64-NEXT: LBB10_1: ## %bb2
617 ; GISEL-X64-NEXT: movl $1, %eax
618 ; GISEL-X64-NEXT: retq
620 ; GISEL-X86-LABEL: icmp_eq:
621 ; GISEL-X86: ## %bb.0:
622 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
623 ; GISEL-X86-NEXT: cmpl %eax, %eax
624 ; GISEL-X86-NEXT: sete %al
625 ; GISEL-X86-NEXT: testb $1, %al
626 ; GISEL-X86-NEXT: je LBB10_1
627 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
628 ; GISEL-X86-NEXT: xorl %eax, %eax
629 ; GISEL-X86-NEXT: retl
630 ; GISEL-X86-NEXT: LBB10_1: ## %bb2
631 ; GISEL-X86-NEXT: movl $1, %eax
632 ; GISEL-X86-NEXT: retl
633 %1 = icmp eq i32 %x, %x
634 br i1 %1, label %bb1, label %bb2
641 define i32 @icmp_ne(i32 %x) {
642 ; SDAG-LABEL: icmp_ne:
644 ; SDAG-NEXT: xorl %eax, %eax
645 ; SDAG-NEXT: testb %al, %al
646 ; SDAG-NEXT: je LBB11_1
647 ; SDAG-NEXT: ## %bb.2: ## %bb1
648 ; SDAG-NEXT: xorl %eax, %eax
649 ; SDAG-NEXT: ret{{q|l}}
650 ; SDAG-NEXT: LBB11_1: ## %bb2
651 ; SDAG-NEXT: movl $1, %eax
652 ; SDAG-NEXT: ret{{q|l}}
654 ; FASTISEL-LABEL: icmp_ne:
655 ; FASTISEL: ## %bb.0:
656 ; FASTISEL-NEXT: movl $1, %eax
657 ; FASTISEL-NEXT: ret{{q|l}}
659 ; GISEL-X64-LABEL: icmp_ne:
660 ; GISEL-X64: ## %bb.0:
661 ; GISEL-X64-NEXT: cmpl %edi, %edi
662 ; GISEL-X64-NEXT: setne %al
663 ; GISEL-X64-NEXT: testb $1, %al
664 ; GISEL-X64-NEXT: je LBB11_1
665 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
666 ; GISEL-X64-NEXT: xorl %eax, %eax
667 ; GISEL-X64-NEXT: retq
668 ; GISEL-X64-NEXT: LBB11_1: ## %bb2
669 ; GISEL-X64-NEXT: movl $1, %eax
670 ; GISEL-X64-NEXT: retq
672 ; GISEL-X86-LABEL: icmp_ne:
673 ; GISEL-X86: ## %bb.0:
674 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
675 ; GISEL-X86-NEXT: cmpl %eax, %eax
676 ; GISEL-X86-NEXT: setne %al
677 ; GISEL-X86-NEXT: testb $1, %al
678 ; GISEL-X86-NEXT: je LBB11_1
679 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
680 ; GISEL-X86-NEXT: xorl %eax, %eax
681 ; GISEL-X86-NEXT: retl
682 ; GISEL-X86-NEXT: LBB11_1: ## %bb2
683 ; GISEL-X86-NEXT: movl $1, %eax
684 ; GISEL-X86-NEXT: retl
685 %1 = icmp ne i32 %x, %x
686 br i1 %1, label %bb1, label %bb2
693 define i32 @icmp_ugt(i32 %x) {
694 ; SDAG-LABEL: icmp_ugt:
696 ; SDAG-NEXT: xorl %eax, %eax
697 ; SDAG-NEXT: testb %al, %al
698 ; SDAG-NEXT: je LBB12_1
699 ; SDAG-NEXT: ## %bb.2: ## %bb1
700 ; SDAG-NEXT: xorl %eax, %eax
701 ; SDAG-NEXT: ret{{q|l}}
702 ; SDAG-NEXT: LBB12_1: ## %bb2
703 ; SDAG-NEXT: movl $1, %eax
704 ; SDAG-NEXT: ret{{q|l}}
706 ; FASTISEL-LABEL: icmp_ugt:
707 ; FASTISEL: ## %bb.0:
708 ; FASTISEL-NEXT: movl $1, %eax
709 ; FASTISEL-NEXT: ret{{q|l}}
711 ; GISEL-X64-LABEL: icmp_ugt:
712 ; GISEL-X64: ## %bb.0:
713 ; GISEL-X64-NEXT: cmpl %edi, %edi
714 ; GISEL-X64-NEXT: seta %al
715 ; GISEL-X64-NEXT: testb $1, %al
716 ; GISEL-X64-NEXT: je LBB12_1
717 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
718 ; GISEL-X64-NEXT: xorl %eax, %eax
719 ; GISEL-X64-NEXT: retq
720 ; GISEL-X64-NEXT: LBB12_1: ## %bb2
721 ; GISEL-X64-NEXT: movl $1, %eax
722 ; GISEL-X64-NEXT: retq
724 ; GISEL-X86-LABEL: icmp_ugt:
725 ; GISEL-X86: ## %bb.0:
726 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
727 ; GISEL-X86-NEXT: cmpl %eax, %eax
728 ; GISEL-X86-NEXT: seta %al
729 ; GISEL-X86-NEXT: testb $1, %al
730 ; GISEL-X86-NEXT: je LBB12_1
731 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
732 ; GISEL-X86-NEXT: xorl %eax, %eax
733 ; GISEL-X86-NEXT: retl
734 ; GISEL-X86-NEXT: LBB12_1: ## %bb2
735 ; GISEL-X86-NEXT: movl $1, %eax
736 ; GISEL-X86-NEXT: retl
737 %1 = icmp ugt i32 %x, %x
738 br i1 %1, label %bb1, label %bb2
745 define i32 @icmp_uge(i32 %x) {
746 ; SDAG-LABEL: icmp_uge:
748 ; SDAG-NEXT: movb $1, %al
749 ; SDAG-NEXT: testb %al, %al
750 ; SDAG-NEXT: je LBB13_1
751 ; SDAG-NEXT: ## %bb.2: ## %bb1
752 ; SDAG-NEXT: xorl %eax, %eax
753 ; SDAG-NEXT: ret{{q|l}}
754 ; SDAG-NEXT: LBB13_1: ## %bb2
755 ; SDAG-NEXT: movl $1, %eax
756 ; SDAG-NEXT: ret{{q|l}}
758 ; FASTISEL-X64-LABEL: icmp_uge:
759 ; FASTISEL-X64: ## %bb.0:
760 ; FASTISEL-X64-NEXT: xorl %eax, %eax
761 ; FASTISEL-X64-NEXT: retq
763 ; GISEL-X64-LABEL: icmp_uge:
764 ; GISEL-X64: ## %bb.0:
765 ; GISEL-X64-NEXT: cmpl %edi, %edi
766 ; GISEL-X64-NEXT: setae %al
767 ; GISEL-X64-NEXT: testb $1, %al
768 ; GISEL-X64-NEXT: je LBB13_1
769 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
770 ; GISEL-X64-NEXT: xorl %eax, %eax
771 ; GISEL-X64-NEXT: retq
772 ; GISEL-X64-NEXT: LBB13_1: ## %bb2
773 ; GISEL-X64-NEXT: movl $1, %eax
774 ; GISEL-X64-NEXT: retq
776 ; GISEL-X86-LABEL: icmp_uge:
777 ; GISEL-X86: ## %bb.0:
778 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
779 ; GISEL-X86-NEXT: cmpl %eax, %eax
780 ; GISEL-X86-NEXT: setae %al
781 ; GISEL-X86-NEXT: testb $1, %al
782 ; GISEL-X86-NEXT: je LBB13_1
783 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
784 ; GISEL-X86-NEXT: xorl %eax, %eax
785 ; GISEL-X86-NEXT: retl
786 ; GISEL-X86-NEXT: LBB13_1: ## %bb2
787 ; GISEL-X86-NEXT: movl $1, %eax
788 ; GISEL-X86-NEXT: retl
789 %1 = icmp uge i32 %x, %x
790 br i1 %1, label %bb1, label %bb2
797 define i32 @icmp_ult(i32 %x) {
798 ; SDAG-LABEL: icmp_ult:
800 ; SDAG-NEXT: xorl %eax, %eax
801 ; SDAG-NEXT: testb %al, %al
802 ; SDAG-NEXT: je LBB14_1
803 ; SDAG-NEXT: ## %bb.2: ## %bb1
804 ; SDAG-NEXT: xorl %eax, %eax
805 ; SDAG-NEXT: ret{{q|l}}
806 ; SDAG-NEXT: LBB14_1: ## %bb2
807 ; SDAG-NEXT: movl $1, %eax
808 ; SDAG-NEXT: ret{{q|l}}
810 ; FASTISEL-X64-LABEL: icmp_ult:
811 ; FASTISEL-X64: ## %bb.0:
812 ; FASTISEL-X64-NEXT: movl $1, %eax
813 ; FASTISEL-X64-NEXT: ret{{q|l}}
815 ; GISEL-X64-LABEL: icmp_ult:
816 ; GISEL-X64: ## %bb.0:
817 ; GISEL-X64-NEXT: cmpl %edi, %edi
818 ; GISEL-X64-NEXT: setb %al
819 ; GISEL-X64-NEXT: testb $1, %al
820 ; GISEL-X64-NEXT: je LBB14_1
821 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
822 ; GISEL-X64-NEXT: xorl %eax, %eax
823 ; GISEL-X64-NEXT: retq
824 ; GISEL-X64-NEXT: LBB14_1: ## %bb2
825 ; GISEL-X64-NEXT: movl $1, %eax
826 ; GISEL-X64-NEXT: retq
828 ; GISEL-X86-LABEL: icmp_ult:
829 ; GISEL-X86: ## %bb.0:
830 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
831 ; GISEL-X86-NEXT: cmpl %eax, %eax
832 ; GISEL-X86-NEXT: setb %al
833 ; GISEL-X86-NEXT: testb $1, %al
834 ; GISEL-X86-NEXT: je LBB14_1
835 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
836 ; GISEL-X86-NEXT: xorl %eax, %eax
837 ; GISEL-X86-NEXT: retl
838 ; GISEL-X86-NEXT: LBB14_1: ## %bb2
839 ; GISEL-X86-NEXT: movl $1, %eax
840 ; GISEL-X86-NEXT: retl
841 %1 = icmp ult i32 %x, %x
842 br i1 %1, label %bb1, label %bb2
849 define i32 @icmp_ule(i32 %x) {
850 ; SDAG-LABEL: icmp_ule:
852 ; SDAG-NEXT: movb $1, %al
853 ; SDAG-NEXT: testb %al, %al
854 ; SDAG-NEXT: je LBB15_1
855 ; SDAG-NEXT: ## %bb.2: ## %bb1
856 ; SDAG-NEXT: xorl %eax, %eax
857 ; SDAG-NEXT: ret{{q|l}}
858 ; SDAG-NEXT: LBB15_1: ## %bb2
859 ; SDAG-NEXT: movl $1, %eax
860 ; SDAG-NEXT: ret{{q|l}}
862 ; FASTISEL-LABEL: icmp_ule:
863 ; FASTISEL: ## %bb.0:
864 ; FASTISEL-NEXT: xorl %eax, %eax
865 ; FASTISEL-NEXT: ret{{q|l}}
867 ; GISEL-X64-LABEL: icmp_ule:
868 ; GISEL-X64: ## %bb.0:
869 ; GISEL-X64-NEXT: cmpl %edi, %edi
870 ; GISEL-X64-NEXT: setbe %al
871 ; GISEL-X64-NEXT: testb $1, %al
872 ; GISEL-X64-NEXT: je LBB15_1
873 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
874 ; GISEL-X64-NEXT: xorl %eax, %eax
875 ; GISEL-X64-NEXT: retq
876 ; GISEL-X64-NEXT: LBB15_1: ## %bb2
877 ; GISEL-X64-NEXT: movl $1, %eax
878 ; GISEL-X64-NEXT: retq
880 ; GISEL-X86-LABEL: icmp_ule:
881 ; GISEL-X86: ## %bb.0:
882 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
883 ; GISEL-X86-NEXT: cmpl %eax, %eax
884 ; GISEL-X86-NEXT: setbe %al
885 ; GISEL-X86-NEXT: testb $1, %al
886 ; GISEL-X86-NEXT: je LBB15_1
887 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
888 ; GISEL-X86-NEXT: xorl %eax, %eax
889 ; GISEL-X86-NEXT: retl
890 ; GISEL-X86-NEXT: LBB15_1: ## %bb2
891 ; GISEL-X86-NEXT: movl $1, %eax
892 ; GISEL-X86-NEXT: retl
893 %1 = icmp ule i32 %x, %x
894 br i1 %1, label %bb1, label %bb2
901 define i32 @icmp_sgt(i32 %x) {
902 ; SDAG-LABEL: icmp_sgt:
904 ; SDAG-NEXT: xorl %eax, %eax
905 ; SDAG-NEXT: testb %al, %al
906 ; SDAG-NEXT: je LBB16_1
907 ; SDAG-NEXT: ## %bb.2: ## %bb1
908 ; SDAG-NEXT: xorl %eax, %eax
909 ; SDAG-NEXT: ret{{q|l}}
910 ; SDAG-NEXT: LBB16_1: ## %bb2
911 ; SDAG-NEXT: movl $1, %eax
912 ; SDAG-NEXT: ret{{q|l}}
914 ; FASTISEL-LABEL: icmp_sgt:
915 ; FASTISEL: ## %bb.0:
916 ; FASTISEL-NEXT: movl $1, %eax
917 ; FASTISEL-NEXT: ret{{q|l}}
919 ; GISEL-X64-LABEL: icmp_sgt:
920 ; GISEL-X64: ## %bb.0:
921 ; GISEL-X64-NEXT: cmpl %edi, %edi
922 ; GISEL-X64-NEXT: setg %al
923 ; GISEL-X64-NEXT: testb $1, %al
924 ; GISEL-X64-NEXT: je LBB16_1
925 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
926 ; GISEL-X64-NEXT: xorl %eax, %eax
927 ; GISEL-X64-NEXT: retq
928 ; GISEL-X64-NEXT: LBB16_1: ## %bb2
929 ; GISEL-X64-NEXT: movl $1, %eax
930 ; GISEL-X64-NEXT: retq
932 ; GISEL-X86-LABEL: icmp_sgt:
933 ; GISEL-X86: ## %bb.0:
934 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
935 ; GISEL-X86-NEXT: cmpl %eax, %eax
936 ; GISEL-X86-NEXT: setg %al
937 ; GISEL-X86-NEXT: testb $1, %al
938 ; GISEL-X86-NEXT: je LBB16_1
939 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
940 ; GISEL-X86-NEXT: xorl %eax, %eax
941 ; GISEL-X86-NEXT: retl
942 ; GISEL-X86-NEXT: LBB16_1: ## %bb2
943 ; GISEL-X86-NEXT: movl $1, %eax
944 ; GISEL-X86-NEXT: retl
945 %1 = icmp sgt i32 %x, %x
946 br i1 %1, label %bb1, label %bb2
953 define i32 @icmp_sge(i32 %x) {
954 ; SDAG-LABEL: icmp_sge:
956 ; SDAG-NEXT: movb $1, %al
957 ; SDAG-NEXT: testb %al, %al
958 ; SDAG-NEXT: je LBB17_1
959 ; SDAG-NEXT: ## %bb.2: ## %bb1
960 ; SDAG-NEXT: xorl %eax, %eax
961 ; SDAG-NEXT: ret{{q|l}}
962 ; SDAG-NEXT: LBB17_1: ## %bb2
963 ; SDAG-NEXT: movl $1, %eax
964 ; SDAG-NEXT: ret{{q|l}}
966 ; FASTISEL-LABEL: icmp_sge:
967 ; FASTISEL: ## %bb.0:
968 ; FASTISEL-NEXT: xorl %eax, %eax
969 ; FASTISEL-NEXT: ret{{q|l}}
971 ; GISEL-X64-LABEL: icmp_sge:
972 ; GISEL-X64: ## %bb.0:
973 ; GISEL-X64-NEXT: cmpl %edi, %edi
974 ; GISEL-X64-NEXT: setge %al
975 ; GISEL-X64-NEXT: testb $1, %al
976 ; GISEL-X64-NEXT: je LBB17_1
977 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
978 ; GISEL-X64-NEXT: xorl %eax, %eax
979 ; GISEL-X64-NEXT: retq
980 ; GISEL-X64-NEXT: LBB17_1: ## %bb2
981 ; GISEL-X64-NEXT: movl $1, %eax
982 ; GISEL-X64-NEXT: retq
984 ; GISEL-X86-LABEL: icmp_sge:
985 ; GISEL-X86: ## %bb.0:
986 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
987 ; GISEL-X86-NEXT: cmpl %eax, %eax
988 ; GISEL-X86-NEXT: setge %al
989 ; GISEL-X86-NEXT: testb $1, %al
990 ; GISEL-X86-NEXT: je LBB17_1
991 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
992 ; GISEL-X86-NEXT: xorl %eax, %eax
993 ; GISEL-X86-NEXT: retl
994 ; GISEL-X86-NEXT: LBB17_1: ## %bb2
995 ; GISEL-X86-NEXT: movl $1, %eax
996 ; GISEL-X86-NEXT: retl
997 %1 = icmp sge i32 %x, %x
998 br i1 %1, label %bb1, label %bb2
1005 define i32 @icmp_slt(i32 %x) {
1006 ; SDAG-LABEL: icmp_slt:
1008 ; SDAG-NEXT: xorl %eax, %eax
1009 ; SDAG-NEXT: testb %al, %al
1010 ; SDAG-NEXT: je LBB18_1
1011 ; SDAG-NEXT: ## %bb.2: ## %bb1
1012 ; SDAG-NEXT: xorl %eax, %eax
1013 ; SDAG-NEXT: ret{{q|l}}
1014 ; SDAG-NEXT: LBB18_1: ## %bb2
1015 ; SDAG-NEXT: movl $1, %eax
1016 ; SDAG-NEXT: ret{{q|l}}
1018 ; FASTISEL-LABEL: icmp_slt:
1019 ; FASTISEL: ## %bb.0:
1020 ; FASTISEL-NEXT: movl $1, %eax
1021 ; FASTISEL-NEXT: ret{{q|l}}
1023 ; GISEL-X64-LABEL: icmp_slt:
1024 ; GISEL-X64: ## %bb.0:
1025 ; GISEL-X64-NEXT: cmpl %edi, %edi
1026 ; GISEL-X64-NEXT: setl %al
1027 ; GISEL-X64-NEXT: testb $1, %al
1028 ; GISEL-X64-NEXT: je LBB18_1
1029 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
1030 ; GISEL-X64-NEXT: xorl %eax, %eax
1031 ; GISEL-X64-NEXT: retq
1032 ; GISEL-X64-NEXT: LBB18_1: ## %bb2
1033 ; GISEL-X64-NEXT: movl $1, %eax
1034 ; GISEL-X64-NEXT: retq
1036 ; GISEL-X86-LABEL: icmp_slt:
1037 ; GISEL-X86: ## %bb.0:
1038 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1039 ; GISEL-X86-NEXT: cmpl %eax, %eax
1040 ; GISEL-X86-NEXT: setl %al
1041 ; GISEL-X86-NEXT: testb $1, %al
1042 ; GISEL-X86-NEXT: je LBB18_1
1043 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
1044 ; GISEL-X86-NEXT: xorl %eax, %eax
1045 ; GISEL-X86-NEXT: retl
1046 ; GISEL-X86-NEXT: LBB18_1: ## %bb2
1047 ; GISEL-X86-NEXT: movl $1, %eax
1048 ; GISEL-X86-NEXT: retl
1049 %1 = icmp slt i32 %x, %x
1050 br i1 %1, label %bb1, label %bb2
1057 define i32 @icmp_sle(i32 %x) {
1058 ; SDAG-LABEL: icmp_sle:
1060 ; SDAG-NEXT: movb $1, %al
1061 ; SDAG-NEXT: testb %al, %al
1062 ; SDAG-NEXT: je LBB19_1
1063 ; SDAG-NEXT: ## %bb.2: ## %bb1
1064 ; SDAG-NEXT: xorl %eax, %eax
1065 ; SDAG-NEXT: ret{{q|l}}
1066 ; SDAG-NEXT: LBB19_1: ## %bb2
1067 ; SDAG-NEXT: movl $1, %eax
1068 ; SDAG-NEXT: ret{{q|l}}
1070 ; FASTISEL-LABEL: icmp_sle:
1071 ; FASTISEL: ## %bb.0:
1072 ; FASTISEL-NEXT: xorl %eax, %eax
1073 ; FASTISEL-NEXT: ret{{q|l}}
1075 ; GISEL-X64-LABEL: icmp_sle:
1076 ; GISEL-X64: ## %bb.0:
1077 ; GISEL-X64-NEXT: cmpl %edi, %edi
1078 ; GISEL-X64-NEXT: setle %al
1079 ; GISEL-X64-NEXT: testb $1, %al
1080 ; GISEL-X64-NEXT: je LBB19_1
1081 ; GISEL-X64-NEXT: ## %bb.2: ## %bb1
1082 ; GISEL-X64-NEXT: xorl %eax, %eax
1083 ; GISEL-X64-NEXT: retq
1084 ; GISEL-X64-NEXT: LBB19_1: ## %bb2
1085 ; GISEL-X64-NEXT: movl $1, %eax
1086 ; GISEL-X64-NEXT: retq
1088 ; GISEL-X86-LABEL: icmp_sle:
1089 ; GISEL-X86: ## %bb.0:
1090 ; GISEL-X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1091 ; GISEL-X86-NEXT: cmpl %eax, %eax
1092 ; GISEL-X86-NEXT: setle %al
1093 ; GISEL-X86-NEXT: testb $1, %al
1094 ; GISEL-X86-NEXT: je LBB19_1
1095 ; GISEL-X86-NEXT: ## %bb.2: ## %bb1
1096 ; GISEL-X86-NEXT: xorl %eax, %eax
1097 ; GISEL-X86-NEXT: retl
1098 ; GISEL-X86-NEXT: LBB19_1: ## %bb2
1099 ; GISEL-X86-NEXT: movl $1, %eax
1100 ; GISEL-X86-NEXT: retl
1101 %1 = icmp sle i32 %x, %x
1102 br i1 %1, label %bb1, label %bb2