1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
2 ; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 < %s | FileCheck %s --check-prefix=CHECK-SD
3 ; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 < %s | FileCheck %s --check-prefix=CHECK-GI
5 define i1 @ule_11111111(i32 noundef %in) {
6 ; CHECK-SD-LABEL: ule_11111111:
8 ; CHECK-SD-NEXT: mov w8, #4370 // =0x1112
9 ; CHECK-SD-NEXT: movk w8, #4369, lsl #16
10 ; CHECK-SD-NEXT: cmp w0, w8
11 ; CHECK-SD-NEXT: cset w0, lo
14 ; CHECK-GI-LABEL: ule_11111111:
16 ; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111
17 ; CHECK-GI-NEXT: cmp w0, w8
18 ; CHECK-GI-NEXT: cset w0, ls
20 %out = icmp ult i32 %in, 286331154
24 define i1 @ule_22222222(i32 noundef %in) {
25 ; CHECK-SD-LABEL: ule_22222222:
27 ; CHECK-SD-NEXT: mov w8, #8739 // =0x2223
28 ; CHECK-SD-NEXT: movk w8, #8738, lsl #16
29 ; CHECK-SD-NEXT: cmp w0, w8
30 ; CHECK-SD-NEXT: cset w0, lo
33 ; CHECK-GI-LABEL: ule_22222222:
35 ; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222
36 ; CHECK-GI-NEXT: cmp w0, w8
37 ; CHECK-GI-NEXT: cset w0, ls
39 %out = icmp ult i32 %in, 572662307
43 define i1 @ule_33333333(i32 noundef %in) {
44 ; CHECK-SD-LABEL: ule_33333333:
46 ; CHECK-SD-NEXT: mov w8, #13108 // =0x3334
47 ; CHECK-SD-NEXT: movk w8, #13107, lsl #16
48 ; CHECK-SD-NEXT: cmp w0, w8
49 ; CHECK-SD-NEXT: cset w0, lo
52 ; CHECK-GI-LABEL: ule_33333333:
54 ; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333
55 ; CHECK-GI-NEXT: cmp w0, w8
56 ; CHECK-GI-NEXT: cset w0, ls
58 %out = icmp ult i32 %in, 858993460
62 define i1 @ule_44444444(i32 noundef %in) {
63 ; CHECK-SD-LABEL: ule_44444444:
65 ; CHECK-SD-NEXT: mov w8, #17477 // =0x4445
66 ; CHECK-SD-NEXT: movk w8, #17476, lsl #16
67 ; CHECK-SD-NEXT: cmp w0, w8
68 ; CHECK-SD-NEXT: cset w0, lo
71 ; CHECK-GI-LABEL: ule_44444444:
73 ; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444
74 ; CHECK-GI-NEXT: cmp w0, w8
75 ; CHECK-GI-NEXT: cset w0, ls
77 %out = icmp ult i32 %in, 1145324613
81 define i1 @ule_55555555(i32 noundef %in) {
82 ; CHECK-SD-LABEL: ule_55555555:
84 ; CHECK-SD-NEXT: mov w8, #21846 // =0x5556
85 ; CHECK-SD-NEXT: movk w8, #21845, lsl #16
86 ; CHECK-SD-NEXT: cmp w0, w8
87 ; CHECK-SD-NEXT: cset w0, lo
90 ; CHECK-GI-LABEL: ule_55555555:
92 ; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555
93 ; CHECK-GI-NEXT: cmp w0, w8
94 ; CHECK-GI-NEXT: cset w0, ls
96 %out = icmp ult i32 %in, 1431655766
100 define i1 @ule_66666666(i32 noundef %in) {
101 ; CHECK-SD-LABEL: ule_66666666:
102 ; CHECK-SD: // %bb.0:
103 ; CHECK-SD-NEXT: mov w8, #26215 // =0x6667
104 ; CHECK-SD-NEXT: movk w8, #26214, lsl #16
105 ; CHECK-SD-NEXT: cmp w0, w8
106 ; CHECK-SD-NEXT: cset w0, lo
109 ; CHECK-GI-LABEL: ule_66666666:
110 ; CHECK-GI: // %bb.0:
111 ; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666
112 ; CHECK-GI-NEXT: cmp w0, w8
113 ; CHECK-GI-NEXT: cset w0, ls
115 %out = icmp ult i32 %in, 1717986919
119 define i1 @ule_77777777(i32 noundef %in) {
120 ; CHECK-SD-LABEL: ule_77777777:
121 ; CHECK-SD: // %bb.0:
122 ; CHECK-SD-NEXT: mov w8, #30584 // =0x7778
123 ; CHECK-SD-NEXT: movk w8, #30583, lsl #16
124 ; CHECK-SD-NEXT: cmp w0, w8
125 ; CHECK-SD-NEXT: cset w0, lo
128 ; CHECK-GI-LABEL: ule_77777777:
129 ; CHECK-GI: // %bb.0:
130 ; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777
131 ; CHECK-GI-NEXT: cmp w0, w8
132 ; CHECK-GI-NEXT: cset w0, ls
134 %out = icmp ult i32 %in, 2004318072
138 define i1 @ule_88888888(i32 noundef %in) {
139 ; CHECK-SD-LABEL: ule_88888888:
140 ; CHECK-SD: // %bb.0:
141 ; CHECK-SD-NEXT: mov w8, #34953 // =0x8889
142 ; CHECK-SD-NEXT: movk w8, #34952, lsl #16
143 ; CHECK-SD-NEXT: cmp w0, w8
144 ; CHECK-SD-NEXT: cset w0, lo
147 ; CHECK-GI-LABEL: ule_88888888:
148 ; CHECK-GI: // %bb.0:
149 ; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888
150 ; CHECK-GI-NEXT: cmp w0, w8
151 ; CHECK-GI-NEXT: cset w0, ls
153 %out = icmp ult i32 %in, -2004318071
157 define i1 @ule_99999999(i32 noundef %in) {
158 ; CHECK-SD-LABEL: ule_99999999:
159 ; CHECK-SD: // %bb.0:
160 ; CHECK-SD-NEXT: mov w8, #39322 // =0x999a
161 ; CHECK-SD-NEXT: movk w8, #39321, lsl #16
162 ; CHECK-SD-NEXT: cmp w0, w8
163 ; CHECK-SD-NEXT: cset w0, lo
166 ; CHECK-GI-LABEL: ule_99999999:
167 ; CHECK-GI: // %bb.0:
168 ; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999
169 ; CHECK-GI-NEXT: cmp w0, w8
170 ; CHECK-GI-NEXT: cset w0, ls
172 %out = icmp ult i32 %in, -1717986918
176 define i1 @uge_11111111(i32 noundef %in) {
177 ; CHECK-SD-LABEL: uge_11111111:
178 ; CHECK-SD: // %bb.0:
179 ; CHECK-SD-NEXT: mov w8, #4368 // =0x1110
180 ; CHECK-SD-NEXT: movk w8, #4369, lsl #16
181 ; CHECK-SD-NEXT: cmp w0, w8
182 ; CHECK-SD-NEXT: cset w0, hi
185 ; CHECK-GI-LABEL: uge_11111111:
186 ; CHECK-GI: // %bb.0:
187 ; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111
188 ; CHECK-GI-NEXT: cmp w0, w8
189 ; CHECK-GI-NEXT: cset w0, hs
191 %out = icmp ugt i32 %in, 286331152
195 define i1 @uge_22222222(i32 noundef %in) {
196 ; CHECK-SD-LABEL: uge_22222222:
197 ; CHECK-SD: // %bb.0:
198 ; CHECK-SD-NEXT: mov w8, #8737 // =0x2221
199 ; CHECK-SD-NEXT: movk w8, #8738, lsl #16
200 ; CHECK-SD-NEXT: cmp w0, w8
201 ; CHECK-SD-NEXT: cset w0, hi
204 ; CHECK-GI-LABEL: uge_22222222:
205 ; CHECK-GI: // %bb.0:
206 ; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222
207 ; CHECK-GI-NEXT: cmp w0, w8
208 ; CHECK-GI-NEXT: cset w0, hs
210 %out = icmp ugt i32 %in, 572662305
214 define i1 @uge_33333333(i32 noundef %in) {
215 ; CHECK-SD-LABEL: uge_33333333:
216 ; CHECK-SD: // %bb.0:
217 ; CHECK-SD-NEXT: mov w8, #13106 // =0x3332
218 ; CHECK-SD-NEXT: movk w8, #13107, lsl #16
219 ; CHECK-SD-NEXT: cmp w0, w8
220 ; CHECK-SD-NEXT: cset w0, hi
223 ; CHECK-GI-LABEL: uge_33333333:
224 ; CHECK-GI: // %bb.0:
225 ; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333
226 ; CHECK-GI-NEXT: cmp w0, w8
227 ; CHECK-GI-NEXT: cset w0, hs
229 %out = icmp ugt i32 %in, 858993458
233 define i1 @uge_44444444(i32 noundef %in) {
234 ; CHECK-SD-LABEL: uge_44444444:
235 ; CHECK-SD: // %bb.0:
236 ; CHECK-SD-NEXT: mov w8, #17475 // =0x4443
237 ; CHECK-SD-NEXT: movk w8, #17476, lsl #16
238 ; CHECK-SD-NEXT: cmp w0, w8
239 ; CHECK-SD-NEXT: cset w0, hi
242 ; CHECK-GI-LABEL: uge_44444444:
243 ; CHECK-GI: // %bb.0:
244 ; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444
245 ; CHECK-GI-NEXT: cmp w0, w8
246 ; CHECK-GI-NEXT: cset w0, hs
248 %out = icmp ugt i32 %in, 1145324611
252 define i1 @uge_55555555(i32 noundef %in) {
253 ; CHECK-SD-LABEL: uge_55555555:
254 ; CHECK-SD: // %bb.0:
255 ; CHECK-SD-NEXT: mov w8, #21844 // =0x5554
256 ; CHECK-SD-NEXT: movk w8, #21845, lsl #16
257 ; CHECK-SD-NEXT: cmp w0, w8
258 ; CHECK-SD-NEXT: cset w0, hi
261 ; CHECK-GI-LABEL: uge_55555555:
262 ; CHECK-GI: // %bb.0:
263 ; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555
264 ; CHECK-GI-NEXT: cmp w0, w8
265 ; CHECK-GI-NEXT: cset w0, hs
267 %out = icmp ugt i32 %in, 1431655764
271 define i1 @uge_66666666(i32 noundef %in) {
272 ; CHECK-SD-LABEL: uge_66666666:
273 ; CHECK-SD: // %bb.0:
274 ; CHECK-SD-NEXT: mov w8, #26213 // =0x6665
275 ; CHECK-SD-NEXT: movk w8, #26214, lsl #16
276 ; CHECK-SD-NEXT: cmp w0, w8
277 ; CHECK-SD-NEXT: cset w0, hi
280 ; CHECK-GI-LABEL: uge_66666666:
281 ; CHECK-GI: // %bb.0:
282 ; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666
283 ; CHECK-GI-NEXT: cmp w0, w8
284 ; CHECK-GI-NEXT: cset w0, hs
286 %out = icmp ugt i32 %in, 1717986917
290 define i1 @uge_77777777(i32 noundef %in) {
291 ; CHECK-SD-LABEL: uge_77777777:
292 ; CHECK-SD: // %bb.0:
293 ; CHECK-SD-NEXT: mov w8, #30582 // =0x7776
294 ; CHECK-SD-NEXT: movk w8, #30583, lsl #16
295 ; CHECK-SD-NEXT: cmp w0, w8
296 ; CHECK-SD-NEXT: cset w0, hi
299 ; CHECK-GI-LABEL: uge_77777777:
300 ; CHECK-GI: // %bb.0:
301 ; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777
302 ; CHECK-GI-NEXT: cmp w0, w8
303 ; CHECK-GI-NEXT: cset w0, hs
305 %out = icmp ugt i32 %in, 2004318070
309 define i1 @uge_88888888(i32 noundef %in) {
310 ; CHECK-SD-LABEL: uge_88888888:
311 ; CHECK-SD: // %bb.0:
312 ; CHECK-SD-NEXT: mov w8, #34951 // =0x8887
313 ; CHECK-SD-NEXT: movk w8, #34952, lsl #16
314 ; CHECK-SD-NEXT: cmp w0, w8
315 ; CHECK-SD-NEXT: cset w0, hi
318 ; CHECK-GI-LABEL: uge_88888888:
319 ; CHECK-GI: // %bb.0:
320 ; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888
321 ; CHECK-GI-NEXT: cmp w0, w8
322 ; CHECK-GI-NEXT: cset w0, hs
324 %out = icmp ugt i32 %in, -2004318073
328 define i1 @uge_99999999(i32 noundef %in) {
329 ; CHECK-SD-LABEL: uge_99999999:
330 ; CHECK-SD: // %bb.0:
331 ; CHECK-SD-NEXT: mov w8, #39320 // =0x9998
332 ; CHECK-SD-NEXT: movk w8, #39321, lsl #16
333 ; CHECK-SD-NEXT: cmp w0, w8
334 ; CHECK-SD-NEXT: cset w0, hi
337 ; CHECK-GI-LABEL: uge_99999999:
338 ; CHECK-GI: // %bb.0:
339 ; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999
340 ; CHECK-GI-NEXT: cmp w0, w8
341 ; CHECK-GI-NEXT: cset w0, hs
343 %out = icmp ugt i32 %in, -1717986920
347 define i1 @sle_11111111(i32 noundef %in) {
348 ; CHECK-SD-LABEL: sle_11111111:
349 ; CHECK-SD: // %bb.0:
350 ; CHECK-SD-NEXT: mov w8, #4370 // =0x1112
351 ; CHECK-SD-NEXT: movk w8, #4369, lsl #16
352 ; CHECK-SD-NEXT: cmp w0, w8
353 ; CHECK-SD-NEXT: cset w0, lt
356 ; CHECK-GI-LABEL: sle_11111111:
357 ; CHECK-GI: // %bb.0:
358 ; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111
359 ; CHECK-GI-NEXT: cmp w0, w8
360 ; CHECK-GI-NEXT: cset w0, le
362 %out = icmp slt i32 %in, 286331154
366 define i1 @sle_22222222(i32 noundef %in) {
367 ; CHECK-SD-LABEL: sle_22222222:
368 ; CHECK-SD: // %bb.0:
369 ; CHECK-SD-NEXT: mov w8, #8739 // =0x2223
370 ; CHECK-SD-NEXT: movk w8, #8738, lsl #16
371 ; CHECK-SD-NEXT: cmp w0, w8
372 ; CHECK-SD-NEXT: cset w0, lt
375 ; CHECK-GI-LABEL: sle_22222222:
376 ; CHECK-GI: // %bb.0:
377 ; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222
378 ; CHECK-GI-NEXT: cmp w0, w8
379 ; CHECK-GI-NEXT: cset w0, le
381 %out = icmp slt i32 %in, 572662307
385 define i1 @sle_33333333(i32 noundef %in) {
386 ; CHECK-SD-LABEL: sle_33333333:
387 ; CHECK-SD: // %bb.0:
388 ; CHECK-SD-NEXT: mov w8, #13108 // =0x3334
389 ; CHECK-SD-NEXT: movk w8, #13107, lsl #16
390 ; CHECK-SD-NEXT: cmp w0, w8
391 ; CHECK-SD-NEXT: cset w0, lt
394 ; CHECK-GI-LABEL: sle_33333333:
395 ; CHECK-GI: // %bb.0:
396 ; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333
397 ; CHECK-GI-NEXT: cmp w0, w8
398 ; CHECK-GI-NEXT: cset w0, le
400 %out = icmp slt i32 %in, 858993460
404 define i1 @sle_44444444(i32 noundef %in) {
405 ; CHECK-SD-LABEL: sle_44444444:
406 ; CHECK-SD: // %bb.0:
407 ; CHECK-SD-NEXT: mov w8, #17477 // =0x4445
408 ; CHECK-SD-NEXT: movk w8, #17476, lsl #16
409 ; CHECK-SD-NEXT: cmp w0, w8
410 ; CHECK-SD-NEXT: cset w0, lt
413 ; CHECK-GI-LABEL: sle_44444444:
414 ; CHECK-GI: // %bb.0:
415 ; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444
416 ; CHECK-GI-NEXT: cmp w0, w8
417 ; CHECK-GI-NEXT: cset w0, le
419 %out = icmp slt i32 %in, 1145324613
423 define i1 @sle_55555555(i32 noundef %in) {
424 ; CHECK-SD-LABEL: sle_55555555:
425 ; CHECK-SD: // %bb.0:
426 ; CHECK-SD-NEXT: mov w8, #21846 // =0x5556
427 ; CHECK-SD-NEXT: movk w8, #21845, lsl #16
428 ; CHECK-SD-NEXT: cmp w0, w8
429 ; CHECK-SD-NEXT: cset w0, lt
432 ; CHECK-GI-LABEL: sle_55555555:
433 ; CHECK-GI: // %bb.0:
434 ; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555
435 ; CHECK-GI-NEXT: cmp w0, w8
436 ; CHECK-GI-NEXT: cset w0, le
438 %out = icmp slt i32 %in, 1431655766
442 define i1 @sle_66666666(i32 noundef %in) {
443 ; CHECK-SD-LABEL: sle_66666666:
444 ; CHECK-SD: // %bb.0:
445 ; CHECK-SD-NEXT: mov w8, #26215 // =0x6667
446 ; CHECK-SD-NEXT: movk w8, #26214, lsl #16
447 ; CHECK-SD-NEXT: cmp w0, w8
448 ; CHECK-SD-NEXT: cset w0, lt
451 ; CHECK-GI-LABEL: sle_66666666:
452 ; CHECK-GI: // %bb.0:
453 ; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666
454 ; CHECK-GI-NEXT: cmp w0, w8
455 ; CHECK-GI-NEXT: cset w0, le
457 %out = icmp slt i32 %in, 1717986919
461 define i1 @sle_77777777(i32 noundef %in) {
462 ; CHECK-SD-LABEL: sle_77777777:
463 ; CHECK-SD: // %bb.0:
464 ; CHECK-SD-NEXT: mov w8, #30584 // =0x7778
465 ; CHECK-SD-NEXT: movk w8, #30583, lsl #16
466 ; CHECK-SD-NEXT: cmp w0, w8
467 ; CHECK-SD-NEXT: cset w0, lt
470 ; CHECK-GI-LABEL: sle_77777777:
471 ; CHECK-GI: // %bb.0:
472 ; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777
473 ; CHECK-GI-NEXT: cmp w0, w8
474 ; CHECK-GI-NEXT: cset w0, le
476 %out = icmp slt i32 %in, 2004318072
480 define i1 @sle_88888888(i32 noundef %in) {
481 ; CHECK-SD-LABEL: sle_88888888:
482 ; CHECK-SD: // %bb.0:
483 ; CHECK-SD-NEXT: mov w8, #34953 // =0x8889
484 ; CHECK-SD-NEXT: movk w8, #34952, lsl #16
485 ; CHECK-SD-NEXT: cmp w0, w8
486 ; CHECK-SD-NEXT: cset w0, lo
489 ; CHECK-GI-LABEL: sle_88888888:
490 ; CHECK-GI: // %bb.0:
491 ; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888
492 ; CHECK-GI-NEXT: cmp w0, w8
493 ; CHECK-GI-NEXT: cset w0, ls
495 %out = icmp ult i32 %in, -2004318071
499 define i1 @sle_99999999(i32 noundef %in) {
500 ; CHECK-SD-LABEL: sle_99999999:
501 ; CHECK-SD: // %bb.0:
502 ; CHECK-SD-NEXT: mov w8, #39322 // =0x999a
503 ; CHECK-SD-NEXT: movk w8, #39321, lsl #16
504 ; CHECK-SD-NEXT: cmp w0, w8
505 ; CHECK-SD-NEXT: cset w0, lo
508 ; CHECK-GI-LABEL: sle_99999999:
509 ; CHECK-GI: // %bb.0:
510 ; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999
511 ; CHECK-GI-NEXT: cmp w0, w8
512 ; CHECK-GI-NEXT: cset w0, ls
514 %out = icmp ult i32 %in, -1717986918
518 define i1 @sge_11111111(i32 noundef %in) {
519 ; CHECK-SD-LABEL: sge_11111111:
520 ; CHECK-SD: // %bb.0:
521 ; CHECK-SD-NEXT: mov w8, #4368 // =0x1110
522 ; CHECK-SD-NEXT: movk w8, #4369, lsl #16
523 ; CHECK-SD-NEXT: cmp w0, w8
524 ; CHECK-SD-NEXT: cset w0, gt
527 ; CHECK-GI-LABEL: sge_11111111:
528 ; CHECK-GI: // %bb.0:
529 ; CHECK-GI-NEXT: mov w8, #286331153 // =0x11111111
530 ; CHECK-GI-NEXT: cmp w0, w8
531 ; CHECK-GI-NEXT: cset w0, ge
533 %out = icmp sgt i32 %in, 286331152
537 define i1 @sge_22222222(i32 noundef %in) {
538 ; CHECK-SD-LABEL: sge_22222222:
539 ; CHECK-SD: // %bb.0:
540 ; CHECK-SD-NEXT: mov w8, #8737 // =0x2221
541 ; CHECK-SD-NEXT: movk w8, #8738, lsl #16
542 ; CHECK-SD-NEXT: cmp w0, w8
543 ; CHECK-SD-NEXT: cset w0, gt
546 ; CHECK-GI-LABEL: sge_22222222:
547 ; CHECK-GI: // %bb.0:
548 ; CHECK-GI-NEXT: mov w8, #572662306 // =0x22222222
549 ; CHECK-GI-NEXT: cmp w0, w8
550 ; CHECK-GI-NEXT: cset w0, ge
552 %out = icmp sgt i32 %in, 572662305
556 define i1 @sge_33333333(i32 noundef %in) {
557 ; CHECK-SD-LABEL: sge_33333333:
558 ; CHECK-SD: // %bb.0:
559 ; CHECK-SD-NEXT: mov w8, #13106 // =0x3332
560 ; CHECK-SD-NEXT: movk w8, #13107, lsl #16
561 ; CHECK-SD-NEXT: cmp w0, w8
562 ; CHECK-SD-NEXT: cset w0, gt
565 ; CHECK-GI-LABEL: sge_33333333:
566 ; CHECK-GI: // %bb.0:
567 ; CHECK-GI-NEXT: mov w8, #858993459 // =0x33333333
568 ; CHECK-GI-NEXT: cmp w0, w8
569 ; CHECK-GI-NEXT: cset w0, ge
571 %out = icmp sgt i32 %in, 858993458
575 define i1 @sge_44444444(i32 noundef %in) {
576 ; CHECK-SD-LABEL: sge_44444444:
577 ; CHECK-SD: // %bb.0:
578 ; CHECK-SD-NEXT: mov w8, #17475 // =0x4443
579 ; CHECK-SD-NEXT: movk w8, #17476, lsl #16
580 ; CHECK-SD-NEXT: cmp w0, w8
581 ; CHECK-SD-NEXT: cset w0, gt
584 ; CHECK-GI-LABEL: sge_44444444:
585 ; CHECK-GI: // %bb.0:
586 ; CHECK-GI-NEXT: mov w8, #1145324612 // =0x44444444
587 ; CHECK-GI-NEXT: cmp w0, w8
588 ; CHECK-GI-NEXT: cset w0, ge
590 %out = icmp sgt i32 %in, 1145324611
594 define i1 @sge_55555555(i32 noundef %in) {
595 ; CHECK-SD-LABEL: sge_55555555:
596 ; CHECK-SD: // %bb.0:
597 ; CHECK-SD-NEXT: mov w8, #21844 // =0x5554
598 ; CHECK-SD-NEXT: movk w8, #21845, lsl #16
599 ; CHECK-SD-NEXT: cmp w0, w8
600 ; CHECK-SD-NEXT: cset w0, gt
603 ; CHECK-GI-LABEL: sge_55555555:
604 ; CHECK-GI: // %bb.0:
605 ; CHECK-GI-NEXT: mov w8, #1431655765 // =0x55555555
606 ; CHECK-GI-NEXT: cmp w0, w8
607 ; CHECK-GI-NEXT: cset w0, ge
609 %out = icmp sgt i32 %in, 1431655764
613 define i1 @sge_66666666(i32 noundef %in) {
614 ; CHECK-SD-LABEL: sge_66666666:
615 ; CHECK-SD: // %bb.0:
616 ; CHECK-SD-NEXT: mov w8, #26213 // =0x6665
617 ; CHECK-SD-NEXT: movk w8, #26214, lsl #16
618 ; CHECK-SD-NEXT: cmp w0, w8
619 ; CHECK-SD-NEXT: cset w0, gt
622 ; CHECK-GI-LABEL: sge_66666666:
623 ; CHECK-GI: // %bb.0:
624 ; CHECK-GI-NEXT: mov w8, #1717986918 // =0x66666666
625 ; CHECK-GI-NEXT: cmp w0, w8
626 ; CHECK-GI-NEXT: cset w0, ge
628 %out = icmp sgt i32 %in, 1717986917
632 define i1 @sge_77777777(i32 noundef %in) {
633 ; CHECK-SD-LABEL: sge_77777777:
634 ; CHECK-SD: // %bb.0:
635 ; CHECK-SD-NEXT: mov w8, #30582 // =0x7776
636 ; CHECK-SD-NEXT: movk w8, #30583, lsl #16
637 ; CHECK-SD-NEXT: cmp w0, w8
638 ; CHECK-SD-NEXT: cset w0, gt
641 ; CHECK-GI-LABEL: sge_77777777:
642 ; CHECK-GI: // %bb.0:
643 ; CHECK-GI-NEXT: mov w8, #2004318071 // =0x77777777
644 ; CHECK-GI-NEXT: cmp w0, w8
645 ; CHECK-GI-NEXT: cset w0, ge
647 %out = icmp sgt i32 %in, 2004318070
651 define i1 @sge_88888888(i32 noundef %in) {
652 ; CHECK-SD-LABEL: sge_88888888:
653 ; CHECK-SD: // %bb.0:
654 ; CHECK-SD-NEXT: mov w8, #34951 // =0x8887
655 ; CHECK-SD-NEXT: movk w8, #34952, lsl #16
656 ; CHECK-SD-NEXT: cmp w0, w8
657 ; CHECK-SD-NEXT: cset w0, hi
660 ; CHECK-GI-LABEL: sge_88888888:
661 ; CHECK-GI: // %bb.0:
662 ; CHECK-GI-NEXT: mov w8, #-2004318072 // =0x88888888
663 ; CHECK-GI-NEXT: cmp w0, w8
664 ; CHECK-GI-NEXT: cset w0, hs
666 %out = icmp ugt i32 %in, -2004318073
670 define i1 @sge_99999999(i32 noundef %in) {
671 ; CHECK-SD-LABEL: sge_99999999:
672 ; CHECK-SD: // %bb.0:
673 ; CHECK-SD-NEXT: mov w8, #39320 // =0x9998
674 ; CHECK-SD-NEXT: movk w8, #39321, lsl #16
675 ; CHECK-SD-NEXT: cmp w0, w8
676 ; CHECK-SD-NEXT: cset w0, hi
679 ; CHECK-GI-LABEL: sge_99999999:
680 ; CHECK-GI: // %bb.0:
681 ; CHECK-GI-NEXT: mov w8, #-1717986919 // =0x99999999
682 ; CHECK-GI-NEXT: cmp w0, w8
683 ; CHECK-GI-NEXT: cset w0, hs
685 %out = icmp ugt i32 %in, -1717986920