1 ; RUN: opt < %s -instcombine -S | FileCheck %s
3 define i1 @lshrugt_01_00(i4 %x) {
4 ; CHECK-LABEL: @lshrugt_01_00(
5 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 1
6 ; CHECK-NEXT: ret i1 [[C]]
13 define i1 @lshrugt_01_01(i4 %x) {
14 ; CHECK-LABEL: @lshrugt_01_01(
15 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 3
16 ; CHECK-NEXT: ret i1 [[C]]
19 %c = icmp ugt i4 %s, 1
23 define i1 @lshrugt_01_02(i4 %x) {
24 ; CHECK-LABEL: @lshrugt_01_02(
25 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 5
26 ; CHECK-NEXT: ret i1 [[C]]
29 %c = icmp ugt i4 %s, 2
33 define i1 @lshrugt_01_03(i4 %x) {
34 ; CHECK-LABEL: @lshrugt_01_03(
35 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
36 ; CHECK-NEXT: ret i1 [[C]]
39 %c = icmp ugt i4 %s, 3
43 define i1 @lshrugt_01_04(i4 %x) {
44 ; CHECK-LABEL: @lshrugt_01_04(
45 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -7
46 ; CHECK-NEXT: ret i1 [[C]]
49 %c = icmp ugt i4 %s, 4
53 define i1 @lshrugt_01_05(i4 %x) {
54 ; CHECK-LABEL: @lshrugt_01_05(
55 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -5
56 ; CHECK-NEXT: ret i1 [[C]]
59 %c = icmp ugt i4 %s, 5
63 define i1 @lshrugt_01_06(i4 %x) {
64 ; CHECK-LABEL: @lshrugt_01_06(
65 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -3
66 ; CHECK-NEXT: ret i1 [[C]]
69 %c = icmp ugt i4 %s, 6
73 define i1 @lshrugt_01_07(i4 %x) {
74 ; CHECK-LABEL: @lshrugt_01_07(
75 ; CHECK-NEXT: ret i1 false
78 %c = icmp ugt i4 %s, 7
82 define i1 @lshrugt_01_08(i4 %x) {
83 ; CHECK-LABEL: @lshrugt_01_08(
84 ; CHECK-NEXT: ret i1 false
87 %c = icmp ugt i4 %s, 8
91 define i1 @lshrugt_01_09(i4 %x) {
92 ; CHECK-LABEL: @lshrugt_01_09(
93 ; CHECK-NEXT: ret i1 false
96 %c = icmp ugt i4 %s, 9
100 define i1 @lshrugt_01_10(i4 %x) {
101 ; CHECK-LABEL: @lshrugt_01_10(
102 ; CHECK-NEXT: ret i1 false
105 %c = icmp ugt i4 %s, 10
109 define i1 @lshrugt_01_11(i4 %x) {
110 ; CHECK-LABEL: @lshrugt_01_11(
111 ; CHECK-NEXT: ret i1 false
114 %c = icmp ugt i4 %s, 11
118 define i1 @lshrugt_01_12(i4 %x) {
119 ; CHECK-LABEL: @lshrugt_01_12(
120 ; CHECK-NEXT: ret i1 false
123 %c = icmp ugt i4 %s, 12
127 define i1 @lshrugt_01_13(i4 %x) {
128 ; CHECK-LABEL: @lshrugt_01_13(
129 ; CHECK-NEXT: ret i1 false
132 %c = icmp ugt i4 %s, 13
136 define i1 @lshrugt_01_14(i4 %x) {
137 ; CHECK-LABEL: @lshrugt_01_14(
138 ; CHECK-NEXT: ret i1 false
141 %c = icmp ugt i4 %s, 14
145 define i1 @lshrugt_01_15(i4 %x) {
146 ; CHECK-LABEL: @lshrugt_01_15(
147 ; CHECK-NEXT: ret i1 false
150 %c = icmp ugt i4 %s, 15
154 define i1 @lshrugt_02_00(i4 %x) {
155 ; CHECK-LABEL: @lshrugt_02_00(
156 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 3
157 ; CHECK-NEXT: ret i1 [[C]]
160 %c = icmp ugt i4 %s, 0
164 define i1 @lshrugt_02_01(i4 %x) {
165 ; CHECK-LABEL: @lshrugt_02_01(
166 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
167 ; CHECK-NEXT: ret i1 [[C]]
170 %c = icmp ugt i4 %s, 1
174 define i1 @lshrugt_02_02(i4 %x) {
175 ; CHECK-LABEL: @lshrugt_02_02(
176 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -5
177 ; CHECK-NEXT: ret i1 [[C]]
180 %c = icmp ugt i4 %s, 2
184 define i1 @lshrugt_02_03(i4 %x) {
185 ; CHECK-LABEL: @lshrugt_02_03(
186 ; CHECK-NEXT: ret i1 false
189 %c = icmp ugt i4 %s, 3
193 define i1 @lshrugt_02_04(i4 %x) {
194 ; CHECK-LABEL: @lshrugt_02_04(
195 ; CHECK-NEXT: ret i1 false
198 %c = icmp ugt i4 %s, 4
202 define i1 @lshrugt_02_05(i4 %x) {
203 ; CHECK-LABEL: @lshrugt_02_05(
204 ; CHECK-NEXT: ret i1 false
207 %c = icmp ugt i4 %s, 5
211 define i1 @lshrugt_02_06(i4 %x) {
212 ; CHECK-LABEL: @lshrugt_02_06(
213 ; CHECK-NEXT: ret i1 false
216 %c = icmp ugt i4 %s, 6
220 define i1 @lshrugt_02_07(i4 %x) {
221 ; CHECK-LABEL: @lshrugt_02_07(
222 ; CHECK-NEXT: ret i1 false
225 %c = icmp ugt i4 %s, 7
229 define i1 @lshrugt_02_08(i4 %x) {
230 ; CHECK-LABEL: @lshrugt_02_08(
231 ; CHECK-NEXT: ret i1 false
234 %c = icmp ugt i4 %s, 8
238 define i1 @lshrugt_02_09(i4 %x) {
239 ; CHECK-LABEL: @lshrugt_02_09(
240 ; CHECK-NEXT: ret i1 false
243 %c = icmp ugt i4 %s, 9
247 define i1 @lshrugt_02_10(i4 %x) {
248 ; CHECK-LABEL: @lshrugt_02_10(
249 ; CHECK-NEXT: ret i1 false
252 %c = icmp ugt i4 %s, 10
256 define i1 @lshrugt_02_11(i4 %x) {
257 ; CHECK-LABEL: @lshrugt_02_11(
258 ; CHECK-NEXT: ret i1 false
261 %c = icmp ugt i4 %s, 11
265 define i1 @lshrugt_02_12(i4 %x) {
266 ; CHECK-LABEL: @lshrugt_02_12(
267 ; CHECK-NEXT: ret i1 false
270 %c = icmp ugt i4 %s, 12
274 define i1 @lshrugt_02_13(i4 %x) {
275 ; CHECK-LABEL: @lshrugt_02_13(
276 ; CHECK-NEXT: ret i1 false
279 %c = icmp ugt i4 %s, 13
283 define i1 @lshrugt_02_14(i4 %x) {
284 ; CHECK-LABEL: @lshrugt_02_14(
285 ; CHECK-NEXT: ret i1 false
288 %c = icmp ugt i4 %s, 14
292 define i1 @lshrugt_02_15(i4 %x) {
293 ; CHECK-LABEL: @lshrugt_02_15(
294 ; CHECK-NEXT: ret i1 false
297 %c = icmp ugt i4 %s, 15
301 define i1 @lshrugt_03_00(i4 %x) {
302 ; CHECK-LABEL: @lshrugt_03_00(
303 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
304 ; CHECK-NEXT: ret i1 [[C]]
307 %c = icmp ugt i4 %s, 0
311 define i1 @lshrugt_03_01(i4 %x) {
312 ; CHECK-LABEL: @lshrugt_03_01(
313 ; CHECK-NEXT: ret i1 false
316 %c = icmp ugt i4 %s, 1
320 define i1 @lshrugt_03_02(i4 %x) {
321 ; CHECK-LABEL: @lshrugt_03_02(
322 ; CHECK-NEXT: ret i1 false
325 %c = icmp ugt i4 %s, 2
329 define i1 @lshrugt_03_03(i4 %x) {
330 ; CHECK-LABEL: @lshrugt_03_03(
331 ; CHECK-NEXT: ret i1 false
334 %c = icmp ugt i4 %s, 3
338 define i1 @lshrugt_03_04(i4 %x) {
339 ; CHECK-LABEL: @lshrugt_03_04(
340 ; CHECK-NEXT: ret i1 false
343 %c = icmp ugt i4 %s, 4
347 define i1 @lshrugt_03_05(i4 %x) {
348 ; CHECK-LABEL: @lshrugt_03_05(
349 ; CHECK-NEXT: ret i1 false
352 %c = icmp ugt i4 %s, 5
356 define i1 @lshrugt_03_06(i4 %x) {
357 ; CHECK-LABEL: @lshrugt_03_06(
358 ; CHECK-NEXT: ret i1 false
361 %c = icmp ugt i4 %s, 6
365 define i1 @lshrugt_03_07(i4 %x) {
366 ; CHECK-LABEL: @lshrugt_03_07(
367 ; CHECK-NEXT: ret i1 false
370 %c = icmp ugt i4 %s, 7
374 define i1 @lshrugt_03_08(i4 %x) {
375 ; CHECK-LABEL: @lshrugt_03_08(
376 ; CHECK-NEXT: ret i1 false
379 %c = icmp ugt i4 %s, 8
383 define i1 @lshrugt_03_09(i4 %x) {
384 ; CHECK-LABEL: @lshrugt_03_09(
385 ; CHECK-NEXT: ret i1 false
388 %c = icmp ugt i4 %s, 9
392 define i1 @lshrugt_03_10(i4 %x) {
393 ; CHECK-LABEL: @lshrugt_03_10(
394 ; CHECK-NEXT: ret i1 false
397 %c = icmp ugt i4 %s, 10
401 define i1 @lshrugt_03_11(i4 %x) {
402 ; CHECK-LABEL: @lshrugt_03_11(
403 ; CHECK-NEXT: ret i1 false
406 %c = icmp ugt i4 %s, 11
410 define i1 @lshrugt_03_12(i4 %x) {
411 ; CHECK-LABEL: @lshrugt_03_12(
412 ; CHECK-NEXT: ret i1 false
415 %c = icmp ugt i4 %s, 12
419 define i1 @lshrugt_03_13(i4 %x) {
420 ; CHECK-LABEL: @lshrugt_03_13(
421 ; CHECK-NEXT: ret i1 false
424 %c = icmp ugt i4 %s, 13
428 define i1 @lshrugt_03_14(i4 %x) {
429 ; CHECK-LABEL: @lshrugt_03_14(
430 ; CHECK-NEXT: ret i1 false
433 %c = icmp ugt i4 %s, 14
437 define i1 @lshrugt_03_15(i4 %x) {
438 ; CHECK-LABEL: @lshrugt_03_15(
439 ; CHECK-NEXT: ret i1 false
442 %c = icmp ugt i4 %s, 15
446 define i1 @lshrult_01_00(i4 %x) {
447 ; CHECK-LABEL: @lshrult_01_00(
448 ; CHECK-NEXT: ret i1 false
451 %c = icmp ult i4 %s, 0
455 define i1 @lshrult_01_01(i4 %x) {
456 ; CHECK-LABEL: @lshrult_01_01(
457 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 2
458 ; CHECK-NEXT: ret i1 [[C]]
461 %c = icmp ult i4 %s, 1
465 define i1 @lshrult_01_02(i4 %x) {
466 ; CHECK-LABEL: @lshrult_01_02(
467 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
468 ; CHECK-NEXT: ret i1 [[C]]
471 %c = icmp ult i4 %s, 2
475 define i1 @lshrult_01_03(i4 %x) {
476 ; CHECK-LABEL: @lshrult_01_03(
477 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 6
478 ; CHECK-NEXT: ret i1 [[C]]
481 %c = icmp ult i4 %s, 3
485 define i1 @lshrult_01_04(i4 %x) {
486 ; CHECK-LABEL: @lshrult_01_04(
487 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
488 ; CHECK-NEXT: ret i1 [[C]]
491 %c = icmp ult i4 %s, 4
495 define i1 @lshrult_01_05(i4 %x) {
496 ; CHECK-LABEL: @lshrult_01_05(
497 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -6
498 ; CHECK-NEXT: ret i1 [[C]]
501 %c = icmp ult i4 %s, 5
505 define i1 @lshrult_01_06(i4 %x) {
506 ; CHECK-LABEL: @lshrult_01_06(
507 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
508 ; CHECK-NEXT: ret i1 [[C]]
511 %c = icmp ult i4 %s, 6
515 define i1 @lshrult_01_07(i4 %x) {
516 ; CHECK-LABEL: @lshrult_01_07(
517 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -2
518 ; CHECK-NEXT: ret i1 [[C]]
521 %c = icmp ult i4 %s, 7
525 define i1 @lshrult_01_08(i4 %x) {
526 ; CHECK-LABEL: @lshrult_01_08(
527 ; CHECK-NEXT: ret i1 true
530 %c = icmp ult i4 %s, 8
534 define i1 @lshrult_01_09(i4 %x) {
535 ; CHECK-LABEL: @lshrult_01_09(
536 ; CHECK-NEXT: ret i1 true
539 %c = icmp ult i4 %s, 9
543 define i1 @lshrult_01_10(i4 %x) {
544 ; CHECK-LABEL: @lshrult_01_10(
545 ; CHECK-NEXT: ret i1 true
548 %c = icmp ult i4 %s, 10
552 define i1 @lshrult_01_11(i4 %x) {
553 ; CHECK-LABEL: @lshrult_01_11(
554 ; CHECK-NEXT: ret i1 true
557 %c = icmp ult i4 %s, 11
561 define i1 @lshrult_01_12(i4 %x) {
562 ; CHECK-LABEL: @lshrult_01_12(
563 ; CHECK-NEXT: ret i1 true
566 %c = icmp ult i4 %s, 12
570 define i1 @lshrult_01_13(i4 %x) {
571 ; CHECK-LABEL: @lshrult_01_13(
572 ; CHECK-NEXT: ret i1 true
575 %c = icmp ult i4 %s, 13
579 define i1 @lshrult_01_14(i4 %x) {
580 ; CHECK-LABEL: @lshrult_01_14(
581 ; CHECK-NEXT: ret i1 true
584 %c = icmp ult i4 %s, 14
588 define i1 @lshrult_01_15(i4 %x) {
589 ; CHECK-LABEL: @lshrult_01_15(
590 ; CHECK-NEXT: ret i1 true
593 %c = icmp ult i4 %s, 15
597 define i1 @lshrult_02_00(i4 %x) {
598 ; CHECK-LABEL: @lshrult_02_00(
599 ; CHECK-NEXT: ret i1 false
602 %c = icmp ult i4 %s, 0
606 define i1 @lshrult_02_01(i4 %x) {
607 ; CHECK-LABEL: @lshrult_02_01(
608 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
609 ; CHECK-NEXT: ret i1 [[C]]
612 %c = icmp ult i4 %s, 1
616 define i1 @lshrult_02_02(i4 %x) {
617 ; CHECK-LABEL: @lshrult_02_02(
618 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
619 ; CHECK-NEXT: ret i1 [[C]]
622 %c = icmp ult i4 %s, 2
626 define i1 @lshrult_02_03(i4 %x) {
627 ; CHECK-LABEL: @lshrult_02_03(
628 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
629 ; CHECK-NEXT: ret i1 [[C]]
632 %c = icmp ult i4 %s, 3
636 define i1 @lshrult_02_04(i4 %x) {
637 ; CHECK-LABEL: @lshrult_02_04(
638 ; CHECK-NEXT: ret i1 true
641 %c = icmp ult i4 %s, 4
645 define i1 @lshrult_02_05(i4 %x) {
646 ; CHECK-LABEL: @lshrult_02_05(
647 ; CHECK-NEXT: ret i1 true
650 %c = icmp ult i4 %s, 5
654 define i1 @lshrult_02_06(i4 %x) {
655 ; CHECK-LABEL: @lshrult_02_06(
656 ; CHECK-NEXT: ret i1 true
659 %c = icmp ult i4 %s, 6
663 define i1 @lshrult_02_07(i4 %x) {
664 ; CHECK-LABEL: @lshrult_02_07(
665 ; CHECK-NEXT: ret i1 true
668 %c = icmp ult i4 %s, 7
672 define i1 @lshrult_02_08(i4 %x) {
673 ; CHECK-LABEL: @lshrult_02_08(
674 ; CHECK-NEXT: ret i1 true
677 %c = icmp ult i4 %s, 8
681 define i1 @lshrult_02_09(i4 %x) {
682 ; CHECK-LABEL: @lshrult_02_09(
683 ; CHECK-NEXT: ret i1 true
686 %c = icmp ult i4 %s, 9
690 define i1 @lshrult_02_10(i4 %x) {
691 ; CHECK-LABEL: @lshrult_02_10(
692 ; CHECK-NEXT: ret i1 true
695 %c = icmp ult i4 %s, 10
699 define i1 @lshrult_02_11(i4 %x) {
700 ; CHECK-LABEL: @lshrult_02_11(
701 ; CHECK-NEXT: ret i1 true
704 %c = icmp ult i4 %s, 11
708 define i1 @lshrult_02_12(i4 %x) {
709 ; CHECK-LABEL: @lshrult_02_12(
710 ; CHECK-NEXT: ret i1 true
713 %c = icmp ult i4 %s, 12
717 define i1 @lshrult_02_13(i4 %x) {
718 ; CHECK-LABEL: @lshrult_02_13(
719 ; CHECK-NEXT: ret i1 true
722 %c = icmp ult i4 %s, 13
726 define i1 @lshrult_02_14(i4 %x) {
727 ; CHECK-LABEL: @lshrult_02_14(
728 ; CHECK-NEXT: ret i1 true
731 %c = icmp ult i4 %s, 14
735 define i1 @lshrult_02_15(i4 %x) {
736 ; CHECK-LABEL: @lshrult_02_15(
737 ; CHECK-NEXT: ret i1 true
740 %c = icmp ult i4 %s, 15
744 define i1 @lshrult_03_00(i4 %x) {
745 ; CHECK-LABEL: @lshrult_03_00(
746 ; CHECK-NEXT: ret i1 false
749 %c = icmp ult i4 %s, 0
753 define i1 @lshrult_03_01(i4 %x) {
754 ; CHECK-LABEL: @lshrult_03_01(
755 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
756 ; CHECK-NEXT: ret i1 [[C]]
759 %c = icmp ult i4 %s, 1
763 define i1 @lshrult_03_02(i4 %x) {
764 ; CHECK-LABEL: @lshrult_03_02(
765 ; CHECK-NEXT: ret i1 true
768 %c = icmp ult i4 %s, 2
772 define i1 @lshrult_03_03(i4 %x) {
773 ; CHECK-LABEL: @lshrult_03_03(
774 ; CHECK-NEXT: ret i1 true
777 %c = icmp ult i4 %s, 3
781 define i1 @lshrult_03_04(i4 %x) {
782 ; CHECK-LABEL: @lshrult_03_04(
783 ; CHECK-NEXT: ret i1 true
786 %c = icmp ult i4 %s, 4
790 define i1 @lshrult_03_05(i4 %x) {
791 ; CHECK-LABEL: @lshrult_03_05(
792 ; CHECK-NEXT: ret i1 true
795 %c = icmp ult i4 %s, 5
799 define i1 @lshrult_03_06(i4 %x) {
800 ; CHECK-LABEL: @lshrult_03_06(
801 ; CHECK-NEXT: ret i1 true
804 %c = icmp ult i4 %s, 6
808 define i1 @lshrult_03_07(i4 %x) {
809 ; CHECK-LABEL: @lshrult_03_07(
810 ; CHECK-NEXT: ret i1 true
813 %c = icmp ult i4 %s, 7
817 define i1 @lshrult_03_08(i4 %x) {
818 ; CHECK-LABEL: @lshrult_03_08(
819 ; CHECK-NEXT: ret i1 true
822 %c = icmp ult i4 %s, 8
826 define i1 @lshrult_03_09(i4 %x) {
827 ; CHECK-LABEL: @lshrult_03_09(
828 ; CHECK-NEXT: ret i1 true
831 %c = icmp ult i4 %s, 9
835 define i1 @lshrult_03_10(i4 %x) {
836 ; CHECK-LABEL: @lshrult_03_10(
837 ; CHECK-NEXT: ret i1 true
840 %c = icmp ult i4 %s, 10
844 define i1 @lshrult_03_11(i4 %x) {
845 ; CHECK-LABEL: @lshrult_03_11(
846 ; CHECK-NEXT: ret i1 true
849 %c = icmp ult i4 %s, 11
853 define i1 @lshrult_03_12(i4 %x) {
854 ; CHECK-LABEL: @lshrult_03_12(
855 ; CHECK-NEXT: ret i1 true
858 %c = icmp ult i4 %s, 12
862 define i1 @lshrult_03_13(i4 %x) {
863 ; CHECK-LABEL: @lshrult_03_13(
864 ; CHECK-NEXT: ret i1 true
867 %c = icmp ult i4 %s, 13
871 define i1 @lshrult_03_14(i4 %x) {
872 ; CHECK-LABEL: @lshrult_03_14(
873 ; CHECK-NEXT: ret i1 true
876 %c = icmp ult i4 %s, 14
880 define i1 @lshrult_03_15(i4 %x) {
881 ; CHECK-LABEL: @lshrult_03_15(
882 ; CHECK-NEXT: ret i1 true
885 %c = icmp ult i4 %s, 15
889 define i1 @ashrsgt_01_00(i4 %x) {
890 ; CHECK-LABEL: @ashrsgt_01_00(
891 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 1
892 ; CHECK-NEXT: ret i1 [[C]]
895 %c = icmp sgt i4 %s, 0
899 define i1 @ashrsgt_01_01(i4 %x) {
900 ; CHECK-LABEL: @ashrsgt_01_01(
901 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 3
902 ; CHECK-NEXT: ret i1 [[C]]
905 %c = icmp sgt i4 %s, 1
909 define i1 @ashrsgt_01_02(i4 %x) {
910 ; CHECK-LABEL: @ashrsgt_01_02(
911 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 5
912 ; CHECK-NEXT: ret i1 [[C]]
915 %c = icmp sgt i4 %s, 2
919 define i1 @ashrsgt_01_03(i4 %x) {
920 ; CHECK-LABEL: @ashrsgt_01_03(
921 ; CHECK-NEXT: ret i1 false
924 %c = icmp sgt i4 %s, 3
928 define i1 @ashrsgt_01_04(i4 %x) {
929 ; CHECK-LABEL: @ashrsgt_01_04(
930 ; CHECK-NEXT: ret i1 false
933 %c = icmp sgt i4 %s, 4
937 define i1 @ashrsgt_01_05(i4 %x) {
938 ; CHECK-LABEL: @ashrsgt_01_05(
939 ; CHECK-NEXT: ret i1 false
942 %c = icmp sgt i4 %s, 5
946 define i1 @ashrsgt_01_06(i4 %x) {
947 ; CHECK-LABEL: @ashrsgt_01_06(
948 ; CHECK-NEXT: ret i1 false
951 %c = icmp sgt i4 %s, 6
955 define i1 @ashrsgt_01_07(i4 %x) {
956 ; CHECK-LABEL: @ashrsgt_01_07(
957 ; CHECK-NEXT: ret i1 false
960 %c = icmp sgt i4 %s, 7
964 define i1 @ashrsgt_01_08(i4 %x) {
965 ; CHECK-LABEL: @ashrsgt_01_08(
966 ; CHECK-NEXT: ret i1 true
969 %c = icmp sgt i4 %s, 8
973 define i1 @ashrsgt_01_09(i4 %x) {
974 ; CHECK-LABEL: @ashrsgt_01_09(
975 ; CHECK-NEXT: ret i1 true
978 %c = icmp sgt i4 %s, 9
982 define i1 @ashrsgt_01_10(i4 %x) {
983 ; CHECK-LABEL: @ashrsgt_01_10(
984 ; CHECK-NEXT: ret i1 true
987 %c = icmp sgt i4 %s, 10
991 define i1 @ashrsgt_01_11(i4 %x) {
992 ; CHECK-LABEL: @ashrsgt_01_11(
993 ; CHECK-NEXT: ret i1 true
996 %c = icmp sgt i4 %s, 11
1000 define i1 @ashrsgt_01_12(i4 %x) {
1001 ; CHECK-LABEL: @ashrsgt_01_12(
1002 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -7
1003 ; CHECK-NEXT: ret i1 [[C]]
1006 %c = icmp sgt i4 %s, 12
1010 define i1 @ashrsgt_01_13(i4 %x) {
1011 ; CHECK-LABEL: @ashrsgt_01_13(
1012 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -5
1013 ; CHECK-NEXT: ret i1 [[C]]
1016 %c = icmp sgt i4 %s, 13
1020 define i1 @ashrsgt_01_14(i4 %x) {
1021 ; CHECK-LABEL: @ashrsgt_01_14(
1022 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -3
1023 ; CHECK-NEXT: ret i1 [[C]]
1026 %c = icmp sgt i4 %s, 14
1030 define i1 @ashrsgt_01_15(i4 %x) {
1031 ; CHECK-LABEL: @ashrsgt_01_15(
1032 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
1033 ; CHECK-NEXT: ret i1 [[C]]
1036 %c = icmp sgt i4 %s, 15
1040 define i1 @ashrsgt_02_00(i4 %x) {
1041 ; CHECK-LABEL: @ashrsgt_02_00(
1042 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 3
1043 ; CHECK-NEXT: ret i1 [[C]]
1046 %c = icmp sgt i4 %s, 0
1050 define i1 @ashrsgt_02_01(i4 %x) {
1051 ; CHECK-LABEL: @ashrsgt_02_01(
1052 ; CHECK-NEXT: ret i1 false
1055 %c = icmp sgt i4 %s, 1
1059 define i1 @ashrsgt_02_02(i4 %x) {
1060 ; CHECK-LABEL: @ashrsgt_02_02(
1061 ; CHECK-NEXT: ret i1 false
1064 %c = icmp sgt i4 %s, 2
1068 define i1 @ashrsgt_02_03(i4 %x) {
1069 ; CHECK-LABEL: @ashrsgt_02_03(
1070 ; CHECK-NEXT: ret i1 false
1073 %c = icmp sgt i4 %s, 3
1077 define i1 @ashrsgt_02_04(i4 %x) {
1078 ; CHECK-LABEL: @ashrsgt_02_04(
1079 ; CHECK-NEXT: ret i1 false
1082 %c = icmp sgt i4 %s, 4
1086 define i1 @ashrsgt_02_05(i4 %x) {
1087 ; CHECK-LABEL: @ashrsgt_02_05(
1088 ; CHECK-NEXT: ret i1 false
1091 %c = icmp sgt i4 %s, 5
1095 define i1 @ashrsgt_02_06(i4 %x) {
1096 ; CHECK-LABEL: @ashrsgt_02_06(
1097 ; CHECK-NEXT: ret i1 false
1100 %c = icmp sgt i4 %s, 6
1104 define i1 @ashrsgt_02_07(i4 %x) {
1105 ; CHECK-LABEL: @ashrsgt_02_07(
1106 ; CHECK-NEXT: ret i1 false
1109 %c = icmp sgt i4 %s, 7
1113 define i1 @ashrsgt_02_08(i4 %x) {
1114 ; CHECK-LABEL: @ashrsgt_02_08(
1115 ; CHECK-NEXT: ret i1 true
1118 %c = icmp sgt i4 %s, 8
1122 define i1 @ashrsgt_02_09(i4 %x) {
1123 ; CHECK-LABEL: @ashrsgt_02_09(
1124 ; CHECK-NEXT: ret i1 true
1127 %c = icmp sgt i4 %s, 9
1131 define i1 @ashrsgt_02_10(i4 %x) {
1132 ; CHECK-LABEL: @ashrsgt_02_10(
1133 ; CHECK-NEXT: ret i1 true
1136 %c = icmp sgt i4 %s, 10
1140 define i1 @ashrsgt_02_11(i4 %x) {
1141 ; CHECK-LABEL: @ashrsgt_02_11(
1142 ; CHECK-NEXT: ret i1 true
1145 %c = icmp sgt i4 %s, 11
1149 define i1 @ashrsgt_02_12(i4 %x) {
1150 ; CHECK-LABEL: @ashrsgt_02_12(
1151 ; CHECK-NEXT: ret i1 true
1154 %c = icmp sgt i4 %s, 12
1158 define i1 @ashrsgt_02_13(i4 %x) {
1159 ; CHECK-LABEL: @ashrsgt_02_13(
1160 ; CHECK-NEXT: ret i1 true
1163 %c = icmp sgt i4 %s, 13
1167 define i1 @ashrsgt_02_14(i4 %x) {
1168 ; CHECK-LABEL: @ashrsgt_02_14(
1169 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -5
1170 ; CHECK-NEXT: ret i1 [[C]]
1173 %c = icmp sgt i4 %s, 14
1177 define i1 @ashrsgt_02_15(i4 %x) {
1178 ; CHECK-LABEL: @ashrsgt_02_15(
1179 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
1180 ; CHECK-NEXT: ret i1 [[C]]
1183 %c = icmp sgt i4 %s, 15
1187 define i1 @ashrsgt_03_00(i4 %x) {
1188 ; CHECK-LABEL: @ashrsgt_03_00(
1189 ; CHECK-NEXT: ret i1 false
1192 %c = icmp sgt i4 %s, 0
1196 define i1 @ashrsgt_03_01(i4 %x) {
1197 ; CHECK-LABEL: @ashrsgt_03_01(
1198 ; CHECK-NEXT: ret i1 false
1201 %c = icmp sgt i4 %s, 1
1205 define i1 @ashrsgt_03_02(i4 %x) {
1206 ; CHECK-LABEL: @ashrsgt_03_02(
1207 ; CHECK-NEXT: ret i1 false
1210 %c = icmp sgt i4 %s, 2
1214 define i1 @ashrsgt_03_03(i4 %x) {
1215 ; CHECK-LABEL: @ashrsgt_03_03(
1216 ; CHECK-NEXT: ret i1 false
1219 %c = icmp sgt i4 %s, 3
1223 define i1 @ashrsgt_03_04(i4 %x) {
1224 ; CHECK-LABEL: @ashrsgt_03_04(
1225 ; CHECK-NEXT: ret i1 false
1228 %c = icmp sgt i4 %s, 4
1232 define i1 @ashrsgt_03_05(i4 %x) {
1233 ; CHECK-LABEL: @ashrsgt_03_05(
1234 ; CHECK-NEXT: ret i1 false
1237 %c = icmp sgt i4 %s, 5
1241 define i1 @ashrsgt_03_06(i4 %x) {
1242 ; CHECK-LABEL: @ashrsgt_03_06(
1243 ; CHECK-NEXT: ret i1 false
1246 %c = icmp sgt i4 %s, 6
1250 define i1 @ashrsgt_03_07(i4 %x) {
1251 ; CHECK-LABEL: @ashrsgt_03_07(
1252 ; CHECK-NEXT: ret i1 false
1255 %c = icmp sgt i4 %s, 7
1259 define i1 @ashrsgt_03_08(i4 %x) {
1260 ; CHECK-LABEL: @ashrsgt_03_08(
1261 ; CHECK-NEXT: ret i1 true
1264 %c = icmp sgt i4 %s, 8
1268 define i1 @ashrsgt_03_09(i4 %x) {
1269 ; CHECK-LABEL: @ashrsgt_03_09(
1270 ; CHECK-NEXT: ret i1 true
1273 %c = icmp sgt i4 %s, 9
1277 define i1 @ashrsgt_03_10(i4 %x) {
1278 ; CHECK-LABEL: @ashrsgt_03_10(
1279 ; CHECK-NEXT: ret i1 true
1282 %c = icmp sgt i4 %s, 10
1286 define i1 @ashrsgt_03_11(i4 %x) {
1287 ; CHECK-LABEL: @ashrsgt_03_11(
1288 ; CHECK-NEXT: ret i1 true
1291 %c = icmp sgt i4 %s, 11
1295 define i1 @ashrsgt_03_12(i4 %x) {
1296 ; CHECK-LABEL: @ashrsgt_03_12(
1297 ; CHECK-NEXT: ret i1 true
1300 %c = icmp sgt i4 %s, 12
1304 define i1 @ashrsgt_03_13(i4 %x) {
1305 ; CHECK-LABEL: @ashrsgt_03_13(
1306 ; CHECK-NEXT: ret i1 true
1309 %c = icmp sgt i4 %s, 13
1313 define i1 @ashrsgt_03_14(i4 %x) {
1314 ; CHECK-LABEL: @ashrsgt_03_14(
1315 ; CHECK-NEXT: ret i1 true
1318 %c = icmp sgt i4 %s, 14
1322 define i1 @ashrsgt_03_15(i4 %x) {
1323 ; CHECK-LABEL: @ashrsgt_03_15(
1324 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
1325 ; CHECK-NEXT: ret i1 [[C]]
1328 %c = icmp sgt i4 %s, 15
1332 define i1 @ashrslt_01_00(i4 %x) {
1333 ; CHECK-LABEL: @ashrslt_01_00(
1334 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
1335 ; CHECK-NEXT: ret i1 [[C]]
1338 %c = icmp slt i4 %s, 0
1342 define i1 @ashrslt_01_01(i4 %x) {
1343 ; CHECK-LABEL: @ashrslt_01_01(
1344 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 2
1345 ; CHECK-NEXT: ret i1 [[C]]
1348 %c = icmp slt i4 %s, 1
1352 define i1 @ashrslt_01_02(i4 %x) {
1353 ; CHECK-LABEL: @ashrslt_01_02(
1354 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
1355 ; CHECK-NEXT: ret i1 [[C]]
1358 %c = icmp slt i4 %s, 2
1362 define i1 @ashrslt_01_03(i4 %x) {
1363 ; CHECK-LABEL: @ashrslt_01_03(
1364 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 6
1365 ; CHECK-NEXT: ret i1 [[C]]
1368 %c = icmp slt i4 %s, 3
1372 define i1 @ashrslt_01_04(i4 %x) {
1373 ; CHECK-LABEL: @ashrslt_01_04(
1374 ; CHECK-NEXT: ret i1 true
1377 %c = icmp slt i4 %s, 4
1381 define i1 @ashrslt_01_05(i4 %x) {
1382 ; CHECK-LABEL: @ashrslt_01_05(
1383 ; CHECK-NEXT: ret i1 true
1386 %c = icmp slt i4 %s, 5
1390 define i1 @ashrslt_01_06(i4 %x) {
1391 ; CHECK-LABEL: @ashrslt_01_06(
1392 ; CHECK-NEXT: ret i1 true
1395 %c = icmp slt i4 %s, 6
1399 define i1 @ashrslt_01_07(i4 %x) {
1400 ; CHECK-LABEL: @ashrslt_01_07(
1401 ; CHECK-NEXT: ret i1 true
1404 %c = icmp slt i4 %s, 7
1408 define i1 @ashrslt_01_08(i4 %x) {
1409 ; CHECK-LABEL: @ashrslt_01_08(
1410 ; CHECK-NEXT: ret i1 false
1413 %c = icmp slt i4 %s, 8
1417 define i1 @ashrslt_01_09(i4 %x) {
1418 ; CHECK-LABEL: @ashrslt_01_09(
1419 ; CHECK-NEXT: ret i1 false
1422 %c = icmp slt i4 %s, 9
1426 define i1 @ashrslt_01_10(i4 %x) {
1427 ; CHECK-LABEL: @ashrslt_01_10(
1428 ; CHECK-NEXT: ret i1 false
1431 %c = icmp slt i4 %s, 10
1435 define i1 @ashrslt_01_11(i4 %x) {
1436 ; CHECK-LABEL: @ashrslt_01_11(
1437 ; CHECK-NEXT: ret i1 false
1440 %c = icmp slt i4 %s, 11
1444 define i1 @ashrslt_01_12(i4 %x) {
1445 ; CHECK-LABEL: @ashrslt_01_12(
1446 ; CHECK-NEXT: ret i1 false
1449 %c = icmp slt i4 %s, 12
1453 define i1 @ashrslt_01_13(i4 %x) {
1454 ; CHECK-LABEL: @ashrslt_01_13(
1455 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -6
1456 ; CHECK-NEXT: ret i1 [[C]]
1459 %c = icmp slt i4 %s, 13
1463 define i1 @ashrslt_01_14(i4 %x) {
1464 ; CHECK-LABEL: @ashrslt_01_14(
1465 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
1466 ; CHECK-NEXT: ret i1 [[C]]
1469 %c = icmp slt i4 %s, 14
1473 define i1 @ashrslt_01_15(i4 %x) {
1474 ; CHECK-LABEL: @ashrslt_01_15(
1475 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -2
1476 ; CHECK-NEXT: ret i1 [[C]]
1479 %c = icmp slt i4 %s, 15
1483 define i1 @ashrslt_02_00(i4 %x) {
1484 ; CHECK-LABEL: @ashrslt_02_00(
1485 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
1486 ; CHECK-NEXT: ret i1 [[C]]
1489 %c = icmp slt i4 %s, 0
1493 define i1 @ashrslt_02_01(i4 %x) {
1494 ; CHECK-LABEL: @ashrslt_02_01(
1495 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
1496 ; CHECK-NEXT: ret i1 [[C]]
1499 %c = icmp slt i4 %s, 1
1503 define i1 @ashrslt_02_02(i4 %x) {
1504 ; CHECK-LABEL: @ashrslt_02_02(
1505 ; CHECK-NEXT: ret i1 true
1508 %c = icmp slt i4 %s, 2
1512 define i1 @ashrslt_02_03(i4 %x) {
1513 ; CHECK-LABEL: @ashrslt_02_03(
1514 ; CHECK-NEXT: ret i1 true
1517 %c = icmp slt i4 %s, 3
1521 define i1 @ashrslt_02_04(i4 %x) {
1522 ; CHECK-LABEL: @ashrslt_02_04(
1523 ; CHECK-NEXT: ret i1 true
1526 %c = icmp slt i4 %s, 4
1530 define i1 @ashrslt_02_05(i4 %x) {
1531 ; CHECK-LABEL: @ashrslt_02_05(
1532 ; CHECK-NEXT: ret i1 true
1535 %c = icmp slt i4 %s, 5
1539 define i1 @ashrslt_02_06(i4 %x) {
1540 ; CHECK-LABEL: @ashrslt_02_06(
1541 ; CHECK-NEXT: ret i1 true
1544 %c = icmp slt i4 %s, 6
1548 define i1 @ashrslt_02_07(i4 %x) {
1549 ; CHECK-LABEL: @ashrslt_02_07(
1550 ; CHECK-NEXT: ret i1 true
1553 %c = icmp slt i4 %s, 7
1557 define i1 @ashrslt_02_08(i4 %x) {
1558 ; CHECK-LABEL: @ashrslt_02_08(
1559 ; CHECK-NEXT: ret i1 false
1562 %c = icmp slt i4 %s, 8
1566 define i1 @ashrslt_02_09(i4 %x) {
1567 ; CHECK-LABEL: @ashrslt_02_09(
1568 ; CHECK-NEXT: ret i1 false
1571 %c = icmp slt i4 %s, 9
1575 define i1 @ashrslt_02_10(i4 %x) {
1576 ; CHECK-LABEL: @ashrslt_02_10(
1577 ; CHECK-NEXT: ret i1 false
1580 %c = icmp slt i4 %s, 10
1584 define i1 @ashrslt_02_11(i4 %x) {
1585 ; CHECK-LABEL: @ashrslt_02_11(
1586 ; CHECK-NEXT: ret i1 false
1589 %c = icmp slt i4 %s, 11
1593 define i1 @ashrslt_02_12(i4 %x) {
1594 ; CHECK-LABEL: @ashrslt_02_12(
1595 ; CHECK-NEXT: ret i1 false
1598 %c = icmp slt i4 %s, 12
1602 define i1 @ashrslt_02_13(i4 %x) {
1603 ; CHECK-LABEL: @ashrslt_02_13(
1604 ; CHECK-NEXT: ret i1 false
1607 %c = icmp slt i4 %s, 13
1611 define i1 @ashrslt_02_14(i4 %x) {
1612 ; CHECK-LABEL: @ashrslt_02_14(
1613 ; CHECK-NEXT: ret i1 false
1616 %c = icmp slt i4 %s, 14
1620 define i1 @ashrslt_02_15(i4 %x) {
1621 ; CHECK-LABEL: @ashrslt_02_15(
1622 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
1623 ; CHECK-NEXT: ret i1 [[C]]
1626 %c = icmp slt i4 %s, 15
1630 define i1 @ashrslt_03_00(i4 %x) {
1631 ; CHECK-LABEL: @ashrslt_03_00(
1632 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
1633 ; CHECK-NEXT: ret i1 [[C]]
1636 %c = icmp slt i4 %s, 0
1640 define i1 @ashrslt_03_01(i4 %x) {
1641 ; CHECK-LABEL: @ashrslt_03_01(
1642 ; CHECK-NEXT: ret i1 true
1645 %c = icmp slt i4 %s, 1
1649 define i1 @ashrslt_03_02(i4 %x) {
1650 ; CHECK-LABEL: @ashrslt_03_02(
1651 ; CHECK-NEXT: ret i1 true
1654 %c = icmp slt i4 %s, 2
1658 define i1 @ashrslt_03_03(i4 %x) {
1659 ; CHECK-LABEL: @ashrslt_03_03(
1660 ; CHECK-NEXT: ret i1 true
1663 %c = icmp slt i4 %s, 3
1667 define i1 @ashrslt_03_04(i4 %x) {
1668 ; CHECK-LABEL: @ashrslt_03_04(
1669 ; CHECK-NEXT: ret i1 true
1672 %c = icmp slt i4 %s, 4
1676 define i1 @ashrslt_03_05(i4 %x) {
1677 ; CHECK-LABEL: @ashrslt_03_05(
1678 ; CHECK-NEXT: ret i1 true
1681 %c = icmp slt i4 %s, 5
1685 define i1 @ashrslt_03_06(i4 %x) {
1686 ; CHECK-LABEL: @ashrslt_03_06(
1687 ; CHECK-NEXT: ret i1 true
1690 %c = icmp slt i4 %s, 6
1694 define i1 @ashrslt_03_07(i4 %x) {
1695 ; CHECK-LABEL: @ashrslt_03_07(
1696 ; CHECK-NEXT: ret i1 true
1699 %c = icmp slt i4 %s, 7
1703 define i1 @ashrslt_03_08(i4 %x) {
1704 ; CHECK-LABEL: @ashrslt_03_08(
1705 ; CHECK-NEXT: ret i1 false
1708 %c = icmp slt i4 %s, 8
1712 define i1 @ashrslt_03_09(i4 %x) {
1713 ; CHECK-LABEL: @ashrslt_03_09(
1714 ; CHECK-NEXT: ret i1 false
1717 %c = icmp slt i4 %s, 9
1721 define i1 @ashrslt_03_10(i4 %x) {
1722 ; CHECK-LABEL: @ashrslt_03_10(
1723 ; CHECK-NEXT: ret i1 false
1726 %c = icmp slt i4 %s, 10
1730 define i1 @ashrslt_03_11(i4 %x) {
1731 ; CHECK-LABEL: @ashrslt_03_11(
1732 ; CHECK-NEXT: ret i1 false
1735 %c = icmp slt i4 %s, 11
1739 define i1 @ashrslt_03_12(i4 %x) {
1740 ; CHECK-LABEL: @ashrslt_03_12(
1741 ; CHECK-NEXT: ret i1 false
1744 %c = icmp slt i4 %s, 12
1748 define i1 @ashrslt_03_13(i4 %x) {
1749 ; CHECK-LABEL: @ashrslt_03_13(
1750 ; CHECK-NEXT: ret i1 false
1753 %c = icmp slt i4 %s, 13
1757 define i1 @ashrslt_03_14(i4 %x) {
1758 ; CHECK-LABEL: @ashrslt_03_14(
1759 ; CHECK-NEXT: ret i1 false
1762 %c = icmp slt i4 %s, 14
1766 define i1 @ashrslt_03_15(i4 %x) {
1767 ; CHECK-LABEL: @ashrslt_03_15(
1768 ; CHECK-NEXT: ret i1 false
1771 %c = icmp slt i4 %s, 15
1775 define i1 @lshrugt_01_00_exact(i4 %x) {
1776 ; CHECK-LABEL: @lshrugt_01_00_exact(
1777 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
1778 ; CHECK-NEXT: ret i1 [[C]]
1780 %s = lshr exact i4 %x, 1
1781 %c = icmp ugt i4 %s, 0
1785 define i1 @lshrugt_01_01_exact(i4 %x) {
1786 ; CHECK-LABEL: @lshrugt_01_01_exact(
1787 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 2
1788 ; CHECK-NEXT: ret i1 [[C]]
1790 %s = lshr exact i4 %x, 1
1791 %c = icmp ugt i4 %s, 1
1795 define i1 @lshrugt_01_02_exact(i4 %x) {
1796 ; CHECK-LABEL: @lshrugt_01_02_exact(
1797 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 4
1798 ; CHECK-NEXT: ret i1 [[C]]
1800 %s = lshr exact i4 %x, 1
1801 %c = icmp ugt i4 %s, 2
1805 define i1 @lshrugt_01_03_exact(i4 %x) {
1806 ; CHECK-LABEL: @lshrugt_01_03_exact(
1807 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 6
1808 ; CHECK-NEXT: ret i1 [[C]]
1810 %s = lshr exact i4 %x, 1
1811 %c = icmp ugt i4 %s, 3
1815 define i1 @lshrugt_01_04_exact(i4 %x) {
1816 ; CHECK-LABEL: @lshrugt_01_04_exact(
1817 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -8
1818 ; CHECK-NEXT: ret i1 [[C]]
1820 %s = lshr exact i4 %x, 1
1821 %c = icmp ugt i4 %s, 4
1825 define i1 @lshrugt_01_05_exact(i4 %x) {
1826 ; CHECK-LABEL: @lshrugt_01_05_exact(
1827 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, -6
1828 ; CHECK-NEXT: ret i1 [[C]]
1830 %s = lshr exact i4 %x, 1
1831 %c = icmp ugt i4 %s, 5
1835 define i1 @lshrugt_01_06_exact(i4 %x) {
1836 ; CHECK-LABEL: @lshrugt_01_06_exact(
1837 ; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, -2
1838 ; CHECK-NEXT: ret i1 [[C]]
1840 %s = lshr exact i4 %x, 1
1841 %c = icmp ugt i4 %s, 6
1845 define i1 @lshrugt_01_07_exact(i4 %x) {
1846 ; CHECK-LABEL: @lshrugt_01_07_exact(
1847 ; CHECK-NEXT: ret i1 false
1849 %s = lshr exact i4 %x, 1
1850 %c = icmp ugt i4 %s, 7
1854 define i1 @lshrugt_01_08_exact(i4 %x) {
1855 ; CHECK-LABEL: @lshrugt_01_08_exact(
1856 ; CHECK-NEXT: ret i1 false
1858 %s = lshr exact i4 %x, 1
1859 %c = icmp ugt i4 %s, 8
1863 define i1 @lshrugt_01_09_exact(i4 %x) {
1864 ; CHECK-LABEL: @lshrugt_01_09_exact(
1865 ; CHECK-NEXT: ret i1 false
1867 %s = lshr exact i4 %x, 1
1868 %c = icmp ugt i4 %s, 9
1872 define i1 @lshrugt_01_10_exact(i4 %x) {
1873 ; CHECK-LABEL: @lshrugt_01_10_exact(
1874 ; CHECK-NEXT: ret i1 false
1876 %s = lshr exact i4 %x, 1
1877 %c = icmp ugt i4 %s, 10
1881 define i1 @lshrugt_01_11_exact(i4 %x) {
1882 ; CHECK-LABEL: @lshrugt_01_11_exact(
1883 ; CHECK-NEXT: ret i1 false
1885 %s = lshr exact i4 %x, 1
1886 %c = icmp ugt i4 %s, 11
1890 define i1 @lshrugt_01_12_exact(i4 %x) {
1891 ; CHECK-LABEL: @lshrugt_01_12_exact(
1892 ; CHECK-NEXT: ret i1 false
1894 %s = lshr exact i4 %x, 1
1895 %c = icmp ugt i4 %s, 12
1899 define i1 @lshrugt_01_13_exact(i4 %x) {
1900 ; CHECK-LABEL: @lshrugt_01_13_exact(
1901 ; CHECK-NEXT: ret i1 false
1903 %s = lshr exact i4 %x, 1
1904 %c = icmp ugt i4 %s, 13
1908 define i1 @lshrugt_01_14_exact(i4 %x) {
1909 ; CHECK-LABEL: @lshrugt_01_14_exact(
1910 ; CHECK-NEXT: ret i1 false
1912 %s = lshr exact i4 %x, 1
1913 %c = icmp ugt i4 %s, 14
1917 define i1 @lshrugt_01_15_exact(i4 %x) {
1918 ; CHECK-LABEL: @lshrugt_01_15_exact(
1919 ; CHECK-NEXT: ret i1 false
1921 %s = lshr exact i4 %x, 1
1922 %c = icmp ugt i4 %s, 15
1926 define i1 @lshrugt_02_00_exact(i4 %x) {
1927 ; CHECK-LABEL: @lshrugt_02_00_exact(
1928 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
1929 ; CHECK-NEXT: ret i1 [[C]]
1931 %s = lshr exact i4 %x, 2
1932 %c = icmp ugt i4 %s, 0
1936 define i1 @lshrugt_02_01_exact(i4 %x) {
1937 ; CHECK-LABEL: @lshrugt_02_01_exact(
1938 ; CHECK-NEXT: [[C:%.*]] = icmp ugt i4 %x, 4
1939 ; CHECK-NEXT: ret i1 [[C]]
1941 %s = lshr exact i4 %x, 2
1942 %c = icmp ugt i4 %s, 1
1946 define i1 @lshrugt_02_02_exact(i4 %x) {
1947 ; CHECK-LABEL: @lshrugt_02_02_exact(
1948 ; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, -4
1949 ; CHECK-NEXT: ret i1 [[C]]
1951 %s = lshr exact i4 %x, 2
1952 %c = icmp ugt i4 %s, 2
1956 define i1 @lshrugt_02_03_exact(i4 %x) {
1957 ; CHECK-LABEL: @lshrugt_02_03_exact(
1958 ; CHECK-NEXT: ret i1 false
1960 %s = lshr exact i4 %x, 2
1961 %c = icmp ugt i4 %s, 3
1965 define i1 @lshrugt_02_04_exact(i4 %x) {
1966 ; CHECK-LABEL: @lshrugt_02_04_exact(
1967 ; CHECK-NEXT: ret i1 false
1969 %s = lshr exact i4 %x, 2
1970 %c = icmp ugt i4 %s, 4
1974 define i1 @lshrugt_02_05_exact(i4 %x) {
1975 ; CHECK-LABEL: @lshrugt_02_05_exact(
1976 ; CHECK-NEXT: ret i1 false
1978 %s = lshr exact i4 %x, 2
1979 %c = icmp ugt i4 %s, 5
1983 define i1 @lshrugt_02_06_exact(i4 %x) {
1984 ; CHECK-LABEL: @lshrugt_02_06_exact(
1985 ; CHECK-NEXT: ret i1 false
1987 %s = lshr exact i4 %x, 2
1988 %c = icmp ugt i4 %s, 6
1992 define i1 @lshrugt_02_07_exact(i4 %x) {
1993 ; CHECK-LABEL: @lshrugt_02_07_exact(
1994 ; CHECK-NEXT: ret i1 false
1996 %s = lshr exact i4 %x, 2
1997 %c = icmp ugt i4 %s, 7
2001 define i1 @lshrugt_02_08_exact(i4 %x) {
2002 ; CHECK-LABEL: @lshrugt_02_08_exact(
2003 ; CHECK-NEXT: ret i1 false
2005 %s = lshr exact i4 %x, 2
2006 %c = icmp ugt i4 %s, 8
2010 define i1 @lshrugt_02_09_exact(i4 %x) {
2011 ; CHECK-LABEL: @lshrugt_02_09_exact(
2012 ; CHECK-NEXT: ret i1 false
2014 %s = lshr exact i4 %x, 2
2015 %c = icmp ugt i4 %s, 9
2019 define i1 @lshrugt_02_10_exact(i4 %x) {
2020 ; CHECK-LABEL: @lshrugt_02_10_exact(
2021 ; CHECK-NEXT: ret i1 false
2023 %s = lshr exact i4 %x, 2
2024 %c = icmp ugt i4 %s, 10
2028 define i1 @lshrugt_02_11_exact(i4 %x) {
2029 ; CHECK-LABEL: @lshrugt_02_11_exact(
2030 ; CHECK-NEXT: ret i1 false
2032 %s = lshr exact i4 %x, 2
2033 %c = icmp ugt i4 %s, 11
2037 define i1 @lshrugt_02_12_exact(i4 %x) {
2038 ; CHECK-LABEL: @lshrugt_02_12_exact(
2039 ; CHECK-NEXT: ret i1 false
2041 %s = lshr exact i4 %x, 2
2042 %c = icmp ugt i4 %s, 12
2046 define i1 @lshrugt_02_13_exact(i4 %x) {
2047 ; CHECK-LABEL: @lshrugt_02_13_exact(
2048 ; CHECK-NEXT: ret i1 false
2050 %s = lshr exact i4 %x, 2
2051 %c = icmp ugt i4 %s, 13
2055 define i1 @lshrugt_02_14_exact(i4 %x) {
2056 ; CHECK-LABEL: @lshrugt_02_14_exact(
2057 ; CHECK-NEXT: ret i1 false
2059 %s = lshr exact i4 %x, 2
2060 %c = icmp ugt i4 %s, 14
2064 define i1 @lshrugt_02_15_exact(i4 %x) {
2065 ; CHECK-LABEL: @lshrugt_02_15_exact(
2066 ; CHECK-NEXT: ret i1 false
2068 %s = lshr exact i4 %x, 2
2069 %c = icmp ugt i4 %s, 15
2073 define i1 @lshrugt_03_00_exact(i4 %x) {
2074 ; CHECK-LABEL: @lshrugt_03_00_exact(
2075 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, 0
2076 ; CHECK-NEXT: ret i1 [[C]]
2078 %s = lshr exact i4 %x, 3
2079 %c = icmp ugt i4 %s, 0
2083 define i1 @lshrugt_03_01_exact(i4 %x) {
2084 ; CHECK-LABEL: @lshrugt_03_01_exact(
2085 ; CHECK-NEXT: ret i1 false
2087 %s = lshr exact i4 %x, 3
2088 %c = icmp ugt i4 %s, 1
2092 define i1 @lshrugt_03_02_exact(i4 %x) {
2093 ; CHECK-LABEL: @lshrugt_03_02_exact(
2094 ; CHECK-NEXT: ret i1 false
2096 %s = lshr exact i4 %x, 3
2097 %c = icmp ugt i4 %s, 2
2101 define i1 @lshrugt_03_03_exact(i4 %x) {
2102 ; CHECK-LABEL: @lshrugt_03_03_exact(
2103 ; CHECK-NEXT: ret i1 false
2105 %s = lshr exact i4 %x, 3
2106 %c = icmp ugt i4 %s, 3
2110 define i1 @lshrugt_03_04_exact(i4 %x) {
2111 ; CHECK-LABEL: @lshrugt_03_04_exact(
2112 ; CHECK-NEXT: ret i1 false
2114 %s = lshr exact i4 %x, 3
2115 %c = icmp ugt i4 %s, 4
2119 define i1 @lshrugt_03_05_exact(i4 %x) {
2120 ; CHECK-LABEL: @lshrugt_03_05_exact(
2121 ; CHECK-NEXT: ret i1 false
2123 %s = lshr exact i4 %x, 3
2124 %c = icmp ugt i4 %s, 5
2128 define i1 @lshrugt_03_06_exact(i4 %x) {
2129 ; CHECK-LABEL: @lshrugt_03_06_exact(
2130 ; CHECK-NEXT: ret i1 false
2132 %s = lshr exact i4 %x, 3
2133 %c = icmp ugt i4 %s, 6
2137 define i1 @lshrugt_03_07_exact(i4 %x) {
2138 ; CHECK-LABEL: @lshrugt_03_07_exact(
2139 ; CHECK-NEXT: ret i1 false
2141 %s = lshr exact i4 %x, 3
2142 %c = icmp ugt i4 %s, 7
2146 define i1 @lshrugt_03_08_exact(i4 %x) {
2147 ; CHECK-LABEL: @lshrugt_03_08_exact(
2148 ; CHECK-NEXT: ret i1 false
2150 %s = lshr exact i4 %x, 3
2151 %c = icmp ugt i4 %s, 8
2155 define i1 @lshrugt_03_09_exact(i4 %x) {
2156 ; CHECK-LABEL: @lshrugt_03_09_exact(
2157 ; CHECK-NEXT: ret i1 false
2159 %s = lshr exact i4 %x, 3
2160 %c = icmp ugt i4 %s, 9
2164 define i1 @lshrugt_03_10_exact(i4 %x) {
2165 ; CHECK-LABEL: @lshrugt_03_10_exact(
2166 ; CHECK-NEXT: ret i1 false
2168 %s = lshr exact i4 %x, 3
2169 %c = icmp ugt i4 %s, 10
2173 define i1 @lshrugt_03_11_exact(i4 %x) {
2174 ; CHECK-LABEL: @lshrugt_03_11_exact(
2175 ; CHECK-NEXT: ret i1 false
2177 %s = lshr exact i4 %x, 3
2178 %c = icmp ugt i4 %s, 11
2182 define i1 @lshrugt_03_12_exact(i4 %x) {
2183 ; CHECK-LABEL: @lshrugt_03_12_exact(
2184 ; CHECK-NEXT: ret i1 false
2186 %s = lshr exact i4 %x, 3
2187 %c = icmp ugt i4 %s, 12
2191 define i1 @lshrugt_03_13_exact(i4 %x) {
2192 ; CHECK-LABEL: @lshrugt_03_13_exact(
2193 ; CHECK-NEXT: ret i1 false
2195 %s = lshr exact i4 %x, 3
2196 %c = icmp ugt i4 %s, 13
2200 define i1 @lshrugt_03_14_exact(i4 %x) {
2201 ; CHECK-LABEL: @lshrugt_03_14_exact(
2202 ; CHECK-NEXT: ret i1 false
2204 %s = lshr exact i4 %x, 3
2205 %c = icmp ugt i4 %s, 14
2209 define i1 @lshrugt_03_15_exact(i4 %x) {
2210 ; CHECK-LABEL: @lshrugt_03_15_exact(
2211 ; CHECK-NEXT: ret i1 false
2213 %s = lshr exact i4 %x, 3
2214 %c = icmp ugt i4 %s, 15
2218 define i1 @lshrult_01_00_exact(i4 %x) {
2219 ; CHECK-LABEL: @lshrult_01_00_exact(
2220 ; CHECK-NEXT: ret i1 false
2222 %s = lshr exact i4 %x, 1
2223 %c = icmp ult i4 %s, 0
2227 define i1 @lshrult_01_01_exact(i4 %x) {
2228 ; CHECK-LABEL: @lshrult_01_01_exact(
2229 ; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, 0
2230 ; CHECK-NEXT: ret i1 [[C]]
2232 %s = lshr exact i4 %x, 1
2233 %c = icmp ult i4 %s, 1
2237 define i1 @lshrult_01_02_exact(i4 %x) {
2238 ; CHECK-LABEL: @lshrult_01_02_exact(
2239 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 4
2240 ; CHECK-NEXT: ret i1 [[C]]
2242 %s = lshr exact i4 %x, 1
2243 %c = icmp ult i4 %s, 2
2247 define i1 @lshrult_01_03_exact(i4 %x) {
2248 ; CHECK-LABEL: @lshrult_01_03_exact(
2249 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, 6
2250 ; CHECK-NEXT: ret i1 [[C]]
2252 %s = lshr exact i4 %x, 1
2253 %c = icmp ult i4 %s, 3
2257 define i1 @lshrult_01_04_exact(i4 %x) {
2258 ; CHECK-LABEL: @lshrult_01_04_exact(
2259 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
2260 ; CHECK-NEXT: ret i1 [[C]]
2262 %s = lshr exact i4 %x, 1
2263 %c = icmp ult i4 %s, 4
2267 define i1 @lshrult_01_05_exact(i4 %x) {
2268 ; CHECK-LABEL: @lshrult_01_05_exact(
2269 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -6
2270 ; CHECK-NEXT: ret i1 [[C]]
2272 %s = lshr exact i4 %x, 1
2273 %c = icmp ult i4 %s, 5
2277 define i1 @lshrult_01_06_exact(i4 %x) {
2278 ; CHECK-LABEL: @lshrult_01_06_exact(
2279 ; CHECK-NEXT: [[C:%.*]] = icmp ult i4 %x, -4
2280 ; CHECK-NEXT: ret i1 [[C]]
2282 %s = lshr exact i4 %x, 1
2283 %c = icmp ult i4 %s, 6
2287 define i1 @lshrult_01_07_exact(i4 %x) {
2288 ; CHECK-LABEL: @lshrult_01_07_exact(
2289 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -2
2290 ; CHECK-NEXT: ret i1 [[C]]
2292 %s = lshr exact i4 %x, 1
2293 %c = icmp ult i4 %s, 7
2297 define i1 @lshrult_01_08_exact(i4 %x) {
2298 ; CHECK-LABEL: @lshrult_01_08_exact(
2299 ; CHECK-NEXT: ret i1 true
2301 %s = lshr exact i4 %x, 1
2302 %c = icmp ult i4 %s, 8
2306 define i1 @lshrult_01_09_exact(i4 %x) {
2307 ; CHECK-LABEL: @lshrult_01_09_exact(
2308 ; CHECK-NEXT: ret i1 true
2310 %s = lshr exact i4 %x, 1
2311 %c = icmp ult i4 %s, 9
2315 define i1 @lshrult_01_10_exact(i4 %x) {
2316 ; CHECK-LABEL: @lshrult_01_10_exact(
2317 ; CHECK-NEXT: ret i1 true
2319 %s = lshr exact i4 %x, 1
2320 %c = icmp ult i4 %s, 10
2324 define i1 @lshrult_01_11_exact(i4 %x) {
2325 ; CHECK-LABEL: @lshrult_01_11_exact(
2326 ; CHECK-NEXT: ret i1 true
2328 %s = lshr exact i4 %x, 1
2329 %c = icmp ult i4 %s, 11
2333 define i1 @lshrult_01_12_exact(i4 %x) {
2334 ; CHECK-LABEL: @lshrult_01_12_exact(
2335 ; CHECK-NEXT: ret i1 true
2337 %s = lshr exact i4 %x, 1
2338 %c = icmp ult i4 %s, 12
2342 define i1 @lshrult_01_13_exact(i4 %x) {
2343 ; CHECK-LABEL: @lshrult_01_13_exact(
2344 ; CHECK-NEXT: ret i1 true
2346 %s = lshr exact i4 %x, 1
2347 %c = icmp ult i4 %s, 13
2351 define i1 @lshrult_01_14_exact(i4 %x) {
2352 ; CHECK-LABEL: @lshrult_01_14_exact(
2353 ; CHECK-NEXT: ret i1 true
2355 %s = lshr exact i4 %x, 1
2356 %c = icmp ult i4 %s, 14
2360 define i1 @lshrult_01_15_exact(i4 %x) {
2361 ; CHECK-LABEL: @lshrult_01_15_exact(
2362 ; CHECK-NEXT: ret i1 true
2364 %s = lshr exact i4 %x, 1
2365 %c = icmp ult i4 %s, 15
2369 define i1 @lshrult_02_00_exact(i4 %x) {
2370 ; CHECK-LABEL: @lshrult_02_00_exact(
2371 ; CHECK-NEXT: ret i1 false
2373 %s = lshr exact i4 %x, 2
2374 %c = icmp ult i4 %s, 0
2378 define i1 @lshrult_02_01_exact(i4 %x) {
2379 ; CHECK-LABEL: @lshrult_02_01_exact(
2380 ; CHECK-NEXT: [[C:%.*]] = icmp eq i4 %x, 0
2381 ; CHECK-NEXT: ret i1 [[C]]
2383 %s = lshr exact i4 %x, 2
2384 %c = icmp ult i4 %s, 1
2388 define i1 @lshrult_02_02_exact(i4 %x) {
2389 ; CHECK-LABEL: @lshrult_02_02_exact(
2390 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
2391 ; CHECK-NEXT: ret i1 [[C]]
2393 %s = lshr exact i4 %x, 2
2394 %c = icmp ult i4 %s, 2
2398 define i1 @lshrult_02_03_exact(i4 %x) {
2399 ; CHECK-LABEL: @lshrult_02_03_exact(
2400 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -4
2401 ; CHECK-NEXT: ret i1 [[C]]
2403 %s = lshr exact i4 %x, 2
2404 %c = icmp ult i4 %s, 3
2408 define i1 @lshrult_02_04_exact(i4 %x) {
2409 ; CHECK-LABEL: @lshrult_02_04_exact(
2410 ; CHECK-NEXT: ret i1 true
2412 %s = lshr exact i4 %x, 2
2413 %c = icmp ult i4 %s, 4
2417 define i1 @lshrult_02_05_exact(i4 %x) {
2418 ; CHECK-LABEL: @lshrult_02_05_exact(
2419 ; CHECK-NEXT: ret i1 true
2421 %s = lshr exact i4 %x, 2
2422 %c = icmp ult i4 %s, 5
2426 define i1 @lshrult_02_06_exact(i4 %x) {
2427 ; CHECK-LABEL: @lshrult_02_06_exact(
2428 ; CHECK-NEXT: ret i1 true
2430 %s = lshr exact i4 %x, 2
2431 %c = icmp ult i4 %s, 6
2435 define i1 @lshrult_02_07_exact(i4 %x) {
2436 ; CHECK-LABEL: @lshrult_02_07_exact(
2437 ; CHECK-NEXT: ret i1 true
2439 %s = lshr exact i4 %x, 2
2440 %c = icmp ult i4 %s, 7
2444 define i1 @lshrult_02_08_exact(i4 %x) {
2445 ; CHECK-LABEL: @lshrult_02_08_exact(
2446 ; CHECK-NEXT: ret i1 true
2448 %s = lshr exact i4 %x, 2
2449 %c = icmp ult i4 %s, 8
2453 define i1 @lshrult_02_09_exact(i4 %x) {
2454 ; CHECK-LABEL: @lshrult_02_09_exact(
2455 ; CHECK-NEXT: ret i1 true
2457 %s = lshr exact i4 %x, 2
2458 %c = icmp ult i4 %s, 9
2462 define i1 @lshrult_02_10_exact(i4 %x) {
2463 ; CHECK-LABEL: @lshrult_02_10_exact(
2464 ; CHECK-NEXT: ret i1 true
2466 %s = lshr exact i4 %x, 2
2467 %c = icmp ult i4 %s, 10
2471 define i1 @lshrult_02_11_exact(i4 %x) {
2472 ; CHECK-LABEL: @lshrult_02_11_exact(
2473 ; CHECK-NEXT: ret i1 true
2475 %s = lshr exact i4 %x, 2
2476 %c = icmp ult i4 %s, 11
2480 define i1 @lshrult_02_12_exact(i4 %x) {
2481 ; CHECK-LABEL: @lshrult_02_12_exact(
2482 ; CHECK-NEXT: ret i1 true
2484 %s = lshr exact i4 %x, 2
2485 %c = icmp ult i4 %s, 12
2489 define i1 @lshrult_02_13_exact(i4 %x) {
2490 ; CHECK-LABEL: @lshrult_02_13_exact(
2491 ; CHECK-NEXT: ret i1 true
2493 %s = lshr exact i4 %x, 2
2494 %c = icmp ult i4 %s, 13
2498 define i1 @lshrult_02_14_exact(i4 %x) {
2499 ; CHECK-LABEL: @lshrult_02_14_exact(
2500 ; CHECK-NEXT: ret i1 true
2502 %s = lshr exact i4 %x, 2
2503 %c = icmp ult i4 %s, 14
2507 define i1 @lshrult_02_15_exact(i4 %x) {
2508 ; CHECK-LABEL: @lshrult_02_15_exact(
2509 ; CHECK-NEXT: ret i1 true
2511 %s = lshr exact i4 %x, 2
2512 %c = icmp ult i4 %s, 15
2516 define i1 @lshrult_03_00_exact(i4 %x) {
2517 ; CHECK-LABEL: @lshrult_03_00_exact(
2518 ; CHECK-NEXT: ret i1 false
2520 %s = lshr exact i4 %x, 3
2521 %c = icmp ult i4 %s, 0
2525 define i1 @lshrult_03_01_exact(i4 %x) {
2526 ; CHECK-LABEL: @lshrult_03_01_exact(
2527 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
2528 ; CHECK-NEXT: ret i1 [[C]]
2530 %s = lshr exact i4 %x, 3
2531 %c = icmp ult i4 %s, 1
2535 define i1 @lshrult_03_02_exact(i4 %x) {
2536 ; CHECK-LABEL: @lshrult_03_02_exact(
2537 ; CHECK-NEXT: ret i1 true
2539 %s = lshr exact i4 %x, 3
2540 %c = icmp ult i4 %s, 2
2544 define i1 @lshrult_03_03_exact(i4 %x) {
2545 ; CHECK-LABEL: @lshrult_03_03_exact(
2546 ; CHECK-NEXT: ret i1 true
2548 %s = lshr exact i4 %x, 3
2549 %c = icmp ult i4 %s, 3
2553 define i1 @lshrult_03_04_exact(i4 %x) {
2554 ; CHECK-LABEL: @lshrult_03_04_exact(
2555 ; CHECK-NEXT: ret i1 true
2557 %s = lshr exact i4 %x, 3
2558 %c = icmp ult i4 %s, 4
2562 define i1 @lshrult_03_05_exact(i4 %x) {
2563 ; CHECK-LABEL: @lshrult_03_05_exact(
2564 ; CHECK-NEXT: ret i1 true
2566 %s = lshr exact i4 %x, 3
2567 %c = icmp ult i4 %s, 5
2571 define i1 @lshrult_03_06_exact(i4 %x) {
2572 ; CHECK-LABEL: @lshrult_03_06_exact(
2573 ; CHECK-NEXT: ret i1 true
2575 %s = lshr exact i4 %x, 3
2576 %c = icmp ult i4 %s, 6
2580 define i1 @lshrult_03_07_exact(i4 %x) {
2581 ; CHECK-LABEL: @lshrult_03_07_exact(
2582 ; CHECK-NEXT: ret i1 true
2584 %s = lshr exact i4 %x, 3
2585 %c = icmp ult i4 %s, 7
2589 define i1 @lshrult_03_08_exact(i4 %x) {
2590 ; CHECK-LABEL: @lshrult_03_08_exact(
2591 ; CHECK-NEXT: ret i1 true
2593 %s = lshr exact i4 %x, 3
2594 %c = icmp ult i4 %s, 8
2598 define i1 @lshrult_03_09_exact(i4 %x) {
2599 ; CHECK-LABEL: @lshrult_03_09_exact(
2600 ; CHECK-NEXT: ret i1 true
2602 %s = lshr exact i4 %x, 3
2603 %c = icmp ult i4 %s, 9
2607 define i1 @lshrult_03_10_exact(i4 %x) {
2608 ; CHECK-LABEL: @lshrult_03_10_exact(
2609 ; CHECK-NEXT: ret i1 true
2611 %s = lshr exact i4 %x, 3
2612 %c = icmp ult i4 %s, 10
2616 define i1 @lshrult_03_11_exact(i4 %x) {
2617 ; CHECK-LABEL: @lshrult_03_11_exact(
2618 ; CHECK-NEXT: ret i1 true
2620 %s = lshr exact i4 %x, 3
2621 %c = icmp ult i4 %s, 11
2625 define i1 @lshrult_03_12_exact(i4 %x) {
2626 ; CHECK-LABEL: @lshrult_03_12_exact(
2627 ; CHECK-NEXT: ret i1 true
2629 %s = lshr exact i4 %x, 3
2630 %c = icmp ult i4 %s, 12
2634 define i1 @lshrult_03_13_exact(i4 %x) {
2635 ; CHECK-LABEL: @lshrult_03_13_exact(
2636 ; CHECK-NEXT: ret i1 true
2638 %s = lshr exact i4 %x, 3
2639 %c = icmp ult i4 %s, 13
2643 define i1 @lshrult_03_14_exact(i4 %x) {
2644 ; CHECK-LABEL: @lshrult_03_14_exact(
2645 ; CHECK-NEXT: ret i1 true
2647 %s = lshr exact i4 %x, 3
2648 %c = icmp ult i4 %s, 14
2652 define i1 @lshrult_03_15_exact(i4 %x) {
2653 ; CHECK-LABEL: @lshrult_03_15_exact(
2654 ; CHECK-NEXT: ret i1 true
2656 %s = lshr exact i4 %x, 3
2657 %c = icmp ult i4 %s, 15
2661 define i1 @ashrsgt_01_00_exact(i4 %x) {
2662 ; CHECK-LABEL: @ashrsgt_01_00_exact(
2663 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 0
2664 ; CHECK-NEXT: ret i1 [[C]]
2666 %s = ashr exact i4 %x, 1
2667 %c = icmp sgt i4 %s, 0
2671 define i1 @ashrsgt_01_01_exact(i4 %x) {
2672 ; CHECK-LABEL: @ashrsgt_01_01_exact(
2673 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 2
2674 ; CHECK-NEXT: ret i1 [[C]]
2676 %s = ashr exact i4 %x, 1
2677 %c = icmp sgt i4 %s, 1
2681 define i1 @ashrsgt_01_02_exact(i4 %x) {
2682 ; CHECK-LABEL: @ashrsgt_01_02_exact(
2683 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 4
2684 ; CHECK-NEXT: ret i1 [[C]]
2686 %s = ashr exact i4 %x, 1
2687 %c = icmp sgt i4 %s, 2
2691 define i1 @ashrsgt_01_03_exact(i4 %x) {
2692 ; CHECK-LABEL: @ashrsgt_01_03_exact(
2693 ; CHECK-NEXT: ret i1 false
2695 %s = ashr exact i4 %x, 1
2696 %c = icmp sgt i4 %s, 3
2700 define i1 @ashrsgt_01_04_exact(i4 %x) {
2701 ; CHECK-LABEL: @ashrsgt_01_04_exact(
2702 ; CHECK-NEXT: ret i1 false
2704 %s = ashr exact i4 %x, 1
2705 %c = icmp sgt i4 %s, 4
2709 define i1 @ashrsgt_01_05_exact(i4 %x) {
2710 ; CHECK-LABEL: @ashrsgt_01_05_exact(
2711 ; CHECK-NEXT: ret i1 false
2713 %s = ashr exact i4 %x, 1
2714 %c = icmp sgt i4 %s, 5
2718 define i1 @ashrsgt_01_06_exact(i4 %x) {
2719 ; CHECK-LABEL: @ashrsgt_01_06_exact(
2720 ; CHECK-NEXT: ret i1 false
2722 %s = ashr exact i4 %x, 1
2723 %c = icmp sgt i4 %s, 6
2727 define i1 @ashrsgt_01_07_exact(i4 %x) {
2728 ; CHECK-LABEL: @ashrsgt_01_07_exact(
2729 ; CHECK-NEXT: ret i1 false
2731 %s = ashr exact i4 %x, 1
2732 %c = icmp sgt i4 %s, 7
2736 define i1 @ashrsgt_01_08_exact(i4 %x) {
2737 ; CHECK-LABEL: @ashrsgt_01_08_exact(
2738 ; CHECK-NEXT: ret i1 true
2740 %s = ashr exact i4 %x, 1
2741 %c = icmp sgt i4 %s, 8
2745 define i1 @ashrsgt_01_09_exact(i4 %x) {
2746 ; CHECK-LABEL: @ashrsgt_01_09_exact(
2747 ; CHECK-NEXT: ret i1 true
2749 %s = ashr exact i4 %x, 1
2750 %c = icmp sgt i4 %s, 9
2754 define i1 @ashrsgt_01_10_exact(i4 %x) {
2755 ; CHECK-LABEL: @ashrsgt_01_10_exact(
2756 ; CHECK-NEXT: ret i1 true
2758 %s = ashr exact i4 %x, 1
2759 %c = icmp sgt i4 %s, 10
2763 define i1 @ashrsgt_01_11_exact(i4 %x) {
2764 ; CHECK-LABEL: @ashrsgt_01_11_exact(
2765 ; CHECK-NEXT: ret i1 true
2767 %s = ashr exact i4 %x, 1
2768 %c = icmp sgt i4 %s, 11
2772 define i1 @ashrsgt_01_12_exact(i4 %x) {
2773 ; CHECK-LABEL: @ashrsgt_01_12_exact(
2774 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
2775 ; CHECK-NEXT: ret i1 [[C]]
2777 %s = ashr exact i4 %x, 1
2778 %c = icmp sgt i4 %s, 12
2782 define i1 @ashrsgt_01_13_exact(i4 %x) {
2783 ; CHECK-LABEL: @ashrsgt_01_13_exact(
2784 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -6
2785 ; CHECK-NEXT: ret i1 [[C]]
2787 %s = ashr exact i4 %x, 1
2788 %c = icmp sgt i4 %s, 13
2792 define i1 @ashrsgt_01_14_exact(i4 %x) {
2793 ; CHECK-LABEL: @ashrsgt_01_14_exact(
2794 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -4
2795 ; CHECK-NEXT: ret i1 [[C]]
2797 %s = ashr exact i4 %x, 1
2798 %c = icmp sgt i4 %s, 14
2802 define i1 @ashrsgt_01_15_exact(i4 %x) {
2803 ; CHECK-LABEL: @ashrsgt_01_15_exact(
2804 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
2805 ; CHECK-NEXT: ret i1 [[C]]
2807 %s = ashr exact i4 %x, 1
2808 %c = icmp sgt i4 %s, 15
2812 define i1 @ashrsgt_02_00_exact(i4 %x) {
2813 ; CHECK-LABEL: @ashrsgt_02_00_exact(
2814 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, 0
2815 ; CHECK-NEXT: ret i1 [[C]]
2817 %s = ashr exact i4 %x, 2
2818 %c = icmp sgt i4 %s, 0
2822 define i1 @ashrsgt_02_01_exact(i4 %x) {
2823 ; CHECK-LABEL: @ashrsgt_02_01_exact(
2824 ; CHECK-NEXT: ret i1 false
2826 %s = ashr exact i4 %x, 2
2827 %c = icmp sgt i4 %s, 1
2831 define i1 @ashrsgt_02_02_exact(i4 %x) {
2832 ; CHECK-LABEL: @ashrsgt_02_02_exact(
2833 ; CHECK-NEXT: ret i1 false
2835 %s = ashr exact i4 %x, 2
2836 %c = icmp sgt i4 %s, 2
2840 define i1 @ashrsgt_02_03_exact(i4 %x) {
2841 ; CHECK-LABEL: @ashrsgt_02_03_exact(
2842 ; CHECK-NEXT: ret i1 false
2844 %s = ashr exact i4 %x, 2
2845 %c = icmp sgt i4 %s, 3
2849 define i1 @ashrsgt_02_04_exact(i4 %x) {
2850 ; CHECK-LABEL: @ashrsgt_02_04_exact(
2851 ; CHECK-NEXT: ret i1 false
2853 %s = ashr exact i4 %x, 2
2854 %c = icmp sgt i4 %s, 4
2858 define i1 @ashrsgt_02_05_exact(i4 %x) {
2859 ; CHECK-LABEL: @ashrsgt_02_05_exact(
2860 ; CHECK-NEXT: ret i1 false
2862 %s = ashr exact i4 %x, 2
2863 %c = icmp sgt i4 %s, 5
2867 define i1 @ashrsgt_02_06_exact(i4 %x) {
2868 ; CHECK-LABEL: @ashrsgt_02_06_exact(
2869 ; CHECK-NEXT: ret i1 false
2871 %s = ashr exact i4 %x, 2
2872 %c = icmp sgt i4 %s, 6
2876 define i1 @ashrsgt_02_07_exact(i4 %x) {
2877 ; CHECK-LABEL: @ashrsgt_02_07_exact(
2878 ; CHECK-NEXT: ret i1 false
2880 %s = ashr exact i4 %x, 2
2881 %c = icmp sgt i4 %s, 7
2885 define i1 @ashrsgt_02_08_exact(i4 %x) {
2886 ; CHECK-LABEL: @ashrsgt_02_08_exact(
2887 ; CHECK-NEXT: ret i1 true
2889 %s = ashr exact i4 %x, 2
2890 %c = icmp sgt i4 %s, 8
2894 define i1 @ashrsgt_02_09_exact(i4 %x) {
2895 ; CHECK-LABEL: @ashrsgt_02_09_exact(
2896 ; CHECK-NEXT: ret i1 true
2898 %s = ashr exact i4 %x, 2
2899 %c = icmp sgt i4 %s, 9
2903 define i1 @ashrsgt_02_10_exact(i4 %x) {
2904 ; CHECK-LABEL: @ashrsgt_02_10_exact(
2905 ; CHECK-NEXT: ret i1 true
2907 %s = ashr exact i4 %x, 2
2908 %c = icmp sgt i4 %s, 10
2912 define i1 @ashrsgt_02_11_exact(i4 %x) {
2913 ; CHECK-LABEL: @ashrsgt_02_11_exact(
2914 ; CHECK-NEXT: ret i1 true
2916 %s = ashr exact i4 %x, 2
2917 %c = icmp sgt i4 %s, 11
2921 define i1 @ashrsgt_02_12_exact(i4 %x) {
2922 ; CHECK-LABEL: @ashrsgt_02_12_exact(
2923 ; CHECK-NEXT: ret i1 true
2925 %s = ashr exact i4 %x, 2
2926 %c = icmp sgt i4 %s, 12
2930 define i1 @ashrsgt_02_13_exact(i4 %x) {
2931 ; CHECK-LABEL: @ashrsgt_02_13_exact(
2932 ; CHECK-NEXT: ret i1 true
2934 %s = ashr exact i4 %x, 2
2935 %c = icmp sgt i4 %s, 13
2939 define i1 @ashrsgt_02_14_exact(i4 %x) {
2940 ; CHECK-LABEL: @ashrsgt_02_14_exact(
2941 ; CHECK-NEXT: [[C:%.*]] = icmp ne i4 %x, -8
2942 ; CHECK-NEXT: ret i1 [[C]]
2944 %s = ashr exact i4 %x, 2
2945 %c = icmp sgt i4 %s, 14
2949 define i1 @ashrsgt_02_15_exact(i4 %x) {
2950 ; CHECK-LABEL: @ashrsgt_02_15_exact(
2951 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
2952 ; CHECK-NEXT: ret i1 [[C]]
2954 %s = ashr exact i4 %x, 2
2955 %c = icmp sgt i4 %s, 15
2959 define i1 @ashrsgt_03_00_exact(i4 %x) {
2960 ; CHECK-LABEL: @ashrsgt_03_00_exact(
2961 ; CHECK-NEXT: ret i1 false
2963 %s = ashr exact i4 %x, 3
2964 %c = icmp sgt i4 %s, 0
2968 define i1 @ashrsgt_03_01_exact(i4 %x) {
2969 ; CHECK-LABEL: @ashrsgt_03_01_exact(
2970 ; CHECK-NEXT: ret i1 false
2972 %s = ashr exact i4 %x, 3
2973 %c = icmp sgt i4 %s, 1
2977 define i1 @ashrsgt_03_02_exact(i4 %x) {
2978 ; CHECK-LABEL: @ashrsgt_03_02_exact(
2979 ; CHECK-NEXT: ret i1 false
2981 %s = ashr exact i4 %x, 3
2982 %c = icmp sgt i4 %s, 2
2986 define i1 @ashrsgt_03_03_exact(i4 %x) {
2987 ; CHECK-LABEL: @ashrsgt_03_03_exact(
2988 ; CHECK-NEXT: ret i1 false
2990 %s = ashr exact i4 %x, 3
2991 %c = icmp sgt i4 %s, 3
2995 define i1 @ashrsgt_03_04_exact(i4 %x) {
2996 ; CHECK-LABEL: @ashrsgt_03_04_exact(
2997 ; CHECK-NEXT: ret i1 false
2999 %s = ashr exact i4 %x, 3
3000 %c = icmp sgt i4 %s, 4
3004 define i1 @ashrsgt_03_05_exact(i4 %x) {
3005 ; CHECK-LABEL: @ashrsgt_03_05_exact(
3006 ; CHECK-NEXT: ret i1 false
3008 %s = ashr exact i4 %x, 3
3009 %c = icmp sgt i4 %s, 5
3013 define i1 @ashrsgt_03_06_exact(i4 %x) {
3014 ; CHECK-LABEL: @ashrsgt_03_06_exact(
3015 ; CHECK-NEXT: ret i1 false
3017 %s = ashr exact i4 %x, 3
3018 %c = icmp sgt i4 %s, 6
3022 define i1 @ashrsgt_03_07_exact(i4 %x) {
3023 ; CHECK-LABEL: @ashrsgt_03_07_exact(
3024 ; CHECK-NEXT: ret i1 false
3026 %s = ashr exact i4 %x, 3
3027 %c = icmp sgt i4 %s, 7
3031 define i1 @ashrsgt_03_08_exact(i4 %x) {
3032 ; CHECK-LABEL: @ashrsgt_03_08_exact(
3033 ; CHECK-NEXT: ret i1 true
3035 %s = ashr exact i4 %x, 3
3036 %c = icmp sgt i4 %s, 8
3040 define i1 @ashrsgt_03_09_exact(i4 %x) {
3041 ; CHECK-LABEL: @ashrsgt_03_09_exact(
3042 ; CHECK-NEXT: ret i1 true
3044 %s = ashr exact i4 %x, 3
3045 %c = icmp sgt i4 %s, 9
3049 define i1 @ashrsgt_03_10_exact(i4 %x) {
3050 ; CHECK-LABEL: @ashrsgt_03_10_exact(
3051 ; CHECK-NEXT: ret i1 true
3053 %s = ashr exact i4 %x, 3
3054 %c = icmp sgt i4 %s, 10
3058 define i1 @ashrsgt_03_11_exact(i4 %x) {
3059 ; CHECK-LABEL: @ashrsgt_03_11_exact(
3060 ; CHECK-NEXT: ret i1 true
3062 %s = ashr exact i4 %x, 3
3063 %c = icmp sgt i4 %s, 11
3067 define i1 @ashrsgt_03_12_exact(i4 %x) {
3068 ; CHECK-LABEL: @ashrsgt_03_12_exact(
3069 ; CHECK-NEXT: ret i1 true
3071 %s = ashr exact i4 %x, 3
3072 %c = icmp sgt i4 %s, 12
3076 define i1 @ashrsgt_03_13_exact(i4 %x) {
3077 ; CHECK-LABEL: @ashrsgt_03_13_exact(
3078 ; CHECK-NEXT: ret i1 true
3080 %s = ashr exact i4 %x, 3
3081 %c = icmp sgt i4 %s, 13
3085 define i1 @ashrsgt_03_14_exact(i4 %x) {
3086 ; CHECK-LABEL: @ashrsgt_03_14_exact(
3087 ; CHECK-NEXT: ret i1 true
3089 %s = ashr exact i4 %x, 3
3090 %c = icmp sgt i4 %s, 14
3094 define i1 @ashrsgt_03_15_exact(i4 %x) {
3095 ; CHECK-LABEL: @ashrsgt_03_15_exact(
3096 ; CHECK-NEXT: [[C:%.*]] = icmp sgt i4 %x, -1
3097 ; CHECK-NEXT: ret i1 [[C]]
3099 %s = ashr exact i4 %x, 3
3100 %c = icmp sgt i4 %s, 15
3104 define i1 @ashrslt_01_00_exact(i4 %x) {
3105 ; CHECK-LABEL: @ashrslt_01_00_exact(
3106 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
3107 ; CHECK-NEXT: ret i1 [[C]]
3109 %s = ashr exact i4 %x, 1
3110 %c = icmp slt i4 %s, 0
3114 define i1 @ashrslt_01_01_exact(i4 %x) {
3115 ; CHECK-LABEL: @ashrslt_01_01_exact(
3116 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 2
3117 ; CHECK-NEXT: ret i1 [[C]]
3119 %s = ashr exact i4 %x, 1
3120 %c = icmp slt i4 %s, 1
3124 define i1 @ashrslt_01_02_exact(i4 %x) {
3125 ; CHECK-LABEL: @ashrslt_01_02_exact(
3126 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
3127 ; CHECK-NEXT: ret i1 [[C]]
3129 %s = ashr exact i4 %x, 1
3130 %c = icmp slt i4 %s, 2
3134 define i1 @ashrslt_01_03_exact(i4 %x) {
3135 ; CHECK-LABEL: @ashrslt_01_03_exact(
3136 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 6
3137 ; CHECK-NEXT: ret i1 [[C]]
3139 %s = ashr exact i4 %x, 1
3140 %c = icmp slt i4 %s, 3
3144 define i1 @ashrslt_01_04_exact(i4 %x) {
3145 ; CHECK-LABEL: @ashrslt_01_04_exact(
3146 ; CHECK-NEXT: ret i1 true
3148 %s = ashr exact i4 %x, 1
3149 %c = icmp slt i4 %s, 4
3153 define i1 @ashrslt_01_05_exact(i4 %x) {
3154 ; CHECK-LABEL: @ashrslt_01_05_exact(
3155 ; CHECK-NEXT: ret i1 true
3157 %s = ashr exact i4 %x, 1
3158 %c = icmp slt i4 %s, 5
3162 define i1 @ashrslt_01_06_exact(i4 %x) {
3163 ; CHECK-LABEL: @ashrslt_01_06_exact(
3164 ; CHECK-NEXT: ret i1 true
3166 %s = ashr exact i4 %x, 1
3167 %c = icmp slt i4 %s, 6
3171 define i1 @ashrslt_01_07_exact(i4 %x) {
3172 ; CHECK-LABEL: @ashrslt_01_07_exact(
3173 ; CHECK-NEXT: ret i1 true
3175 %s = ashr exact i4 %x, 1
3176 %c = icmp slt i4 %s, 7
3180 define i1 @ashrslt_01_08_exact(i4 %x) {
3181 ; CHECK-LABEL: @ashrslt_01_08_exact(
3182 ; CHECK-NEXT: ret i1 false
3184 %s = ashr exact i4 %x, 1
3185 %c = icmp slt i4 %s, 8
3189 define i1 @ashrslt_01_09_exact(i4 %x) {
3190 ; CHECK-LABEL: @ashrslt_01_09_exact(
3191 ; CHECK-NEXT: ret i1 false
3193 %s = ashr exact i4 %x, 1
3194 %c = icmp slt i4 %s, 9
3198 define i1 @ashrslt_01_10_exact(i4 %x) {
3199 ; CHECK-LABEL: @ashrslt_01_10_exact(
3200 ; CHECK-NEXT: ret i1 false
3202 %s = ashr exact i4 %x, 1
3203 %c = icmp slt i4 %s, 10
3207 define i1 @ashrslt_01_11_exact(i4 %x) {
3208 ; CHECK-LABEL: @ashrslt_01_11_exact(
3209 ; CHECK-NEXT: ret i1 false
3211 %s = ashr exact i4 %x, 1
3212 %c = icmp slt i4 %s, 11
3216 define i1 @ashrslt_01_12_exact(i4 %x) {
3217 ; CHECK-LABEL: @ashrslt_01_12_exact(
3218 ; CHECK-NEXT: ret i1 false
3220 %s = ashr exact i4 %x, 1
3221 %c = icmp slt i4 %s, 12
3225 define i1 @ashrslt_01_13_exact(i4 %x) {
3226 ; CHECK-LABEL: @ashrslt_01_13_exact(
3227 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -6
3228 ; CHECK-NEXT: ret i1 [[C]]
3230 %s = ashr exact i4 %x, 1
3231 %c = icmp slt i4 %s, 13
3235 define i1 @ashrslt_01_14_exact(i4 %x) {
3236 ; CHECK-LABEL: @ashrslt_01_14_exact(
3237 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
3238 ; CHECK-NEXT: ret i1 [[C]]
3240 %s = ashr exact i4 %x, 1
3241 %c = icmp slt i4 %s, 14
3245 define i1 @ashrslt_01_15_exact(i4 %x) {
3246 ; CHECK-LABEL: @ashrslt_01_15_exact(
3247 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -2
3248 ; CHECK-NEXT: ret i1 [[C]]
3250 %s = ashr exact i4 %x, 1
3251 %c = icmp slt i4 %s, 15
3255 define i1 @ashrslt_02_00_exact(i4 %x) {
3256 ; CHECK-LABEL: @ashrslt_02_00_exact(
3257 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
3258 ; CHECK-NEXT: ret i1 [[C]]
3260 %s = ashr exact i4 %x, 2
3261 %c = icmp slt i4 %s, 0
3265 define i1 @ashrslt_02_01_exact(i4 %x) {
3266 ; CHECK-LABEL: @ashrslt_02_01_exact(
3267 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 4
3268 ; CHECK-NEXT: ret i1 [[C]]
3270 %s = ashr exact i4 %x, 2
3271 %c = icmp slt i4 %s, 1
3275 define i1 @ashrslt_02_02_exact(i4 %x) {
3276 ; CHECK-LABEL: @ashrslt_02_02_exact(
3277 ; CHECK-NEXT: ret i1 true
3279 %s = ashr exact i4 %x, 2
3280 %c = icmp slt i4 %s, 2
3284 define i1 @ashrslt_02_03_exact(i4 %x) {
3285 ; CHECK-LABEL: @ashrslt_02_03_exact(
3286 ; CHECK-NEXT: ret i1 true
3288 %s = ashr exact i4 %x, 2
3289 %c = icmp slt i4 %s, 3
3293 define i1 @ashrslt_02_04_exact(i4 %x) {
3294 ; CHECK-LABEL: @ashrslt_02_04_exact(
3295 ; CHECK-NEXT: ret i1 true
3297 %s = ashr exact i4 %x, 2
3298 %c = icmp slt i4 %s, 4
3302 define i1 @ashrslt_02_05_exact(i4 %x) {
3303 ; CHECK-LABEL: @ashrslt_02_05_exact(
3304 ; CHECK-NEXT: ret i1 true
3306 %s = ashr exact i4 %x, 2
3307 %c = icmp slt i4 %s, 5
3311 define i1 @ashrslt_02_06_exact(i4 %x) {
3312 ; CHECK-LABEL: @ashrslt_02_06_exact(
3313 ; CHECK-NEXT: ret i1 true
3315 %s = ashr exact i4 %x, 2
3316 %c = icmp slt i4 %s, 6
3320 define i1 @ashrslt_02_07_exact(i4 %x) {
3321 ; CHECK-LABEL: @ashrslt_02_07_exact(
3322 ; CHECK-NEXT: ret i1 true
3324 %s = ashr exact i4 %x, 2
3325 %c = icmp slt i4 %s, 7
3329 define i1 @ashrslt_02_08_exact(i4 %x) {
3330 ; CHECK-LABEL: @ashrslt_02_08_exact(
3331 ; CHECK-NEXT: ret i1 false
3333 %s = ashr exact i4 %x, 2
3334 %c = icmp slt i4 %s, 8
3338 define i1 @ashrslt_02_09_exact(i4 %x) {
3339 ; CHECK-LABEL: @ashrslt_02_09_exact(
3340 ; CHECK-NEXT: ret i1 false
3342 %s = ashr exact i4 %x, 2
3343 %c = icmp slt i4 %s, 9
3347 define i1 @ashrslt_02_10_exact(i4 %x) {
3348 ; CHECK-LABEL: @ashrslt_02_10_exact(
3349 ; CHECK-NEXT: ret i1 false
3351 %s = ashr exact i4 %x, 2
3352 %c = icmp slt i4 %s, 10
3356 define i1 @ashrslt_02_11_exact(i4 %x) {
3357 ; CHECK-LABEL: @ashrslt_02_11_exact(
3358 ; CHECK-NEXT: ret i1 false
3360 %s = ashr exact i4 %x, 2
3361 %c = icmp slt i4 %s, 11
3365 define i1 @ashrslt_02_12_exact(i4 %x) {
3366 ; CHECK-LABEL: @ashrslt_02_12_exact(
3367 ; CHECK-NEXT: ret i1 false
3369 %s = ashr exact i4 %x, 2
3370 %c = icmp slt i4 %s, 12
3374 define i1 @ashrslt_02_13_exact(i4 %x) {
3375 ; CHECK-LABEL: @ashrslt_02_13_exact(
3376 ; CHECK-NEXT: ret i1 false
3378 %s = ashr exact i4 %x, 2
3379 %c = icmp slt i4 %s, 13
3383 define i1 @ashrslt_02_14_exact(i4 %x) {
3384 ; CHECK-LABEL: @ashrslt_02_14_exact(
3385 ; CHECK-NEXT: ret i1 false
3387 %s = ashr exact i4 %x, 2
3388 %c = icmp slt i4 %s, 14
3392 define i1 @ashrslt_02_15_exact(i4 %x) {
3393 ; CHECK-LABEL: @ashrslt_02_15_exact(
3394 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, -4
3395 ; CHECK-NEXT: ret i1 [[C]]
3397 %s = ashr exact i4 %x, 2
3398 %c = icmp slt i4 %s, 15
3402 define i1 @ashrslt_03_00_exact(i4 %x) {
3403 ; CHECK-LABEL: @ashrslt_03_00_exact(
3404 ; CHECK-NEXT: [[C:%.*]] = icmp slt i4 %x, 0
3405 ; CHECK-NEXT: ret i1 [[C]]
3407 %s = ashr exact i4 %x, 3
3408 %c = icmp slt i4 %s, 0
3412 define i1 @ashrslt_03_01_exact(i4 %x) {
3413 ; CHECK-LABEL: @ashrslt_03_01_exact(
3414 ; CHECK-NEXT: ret i1 true
3416 %s = ashr exact i4 %x, 3
3417 %c = icmp slt i4 %s, 1
3421 define i1 @ashrslt_03_02_exact(i4 %x) {
3422 ; CHECK-LABEL: @ashrslt_03_02_exact(
3423 ; CHECK-NEXT: ret i1 true
3425 %s = ashr exact i4 %x, 3
3426 %c = icmp slt i4 %s, 2
3430 define i1 @ashrslt_03_03_exact(i4 %x) {
3431 ; CHECK-LABEL: @ashrslt_03_03_exact(
3432 ; CHECK-NEXT: ret i1 true
3434 %s = ashr exact i4 %x, 3
3435 %c = icmp slt i4 %s, 3
3439 define i1 @ashrslt_03_04_exact(i4 %x) {
3440 ; CHECK-LABEL: @ashrslt_03_04_exact(
3441 ; CHECK-NEXT: ret i1 true
3443 %s = ashr exact i4 %x, 3
3444 %c = icmp slt i4 %s, 4
3448 define i1 @ashrslt_03_05_exact(i4 %x) {
3449 ; CHECK-LABEL: @ashrslt_03_05_exact(
3450 ; CHECK-NEXT: ret i1 true
3452 %s = ashr exact i4 %x, 3
3453 %c = icmp slt i4 %s, 5
3457 define i1 @ashrslt_03_06_exact(i4 %x) {
3458 ; CHECK-LABEL: @ashrslt_03_06_exact(
3459 ; CHECK-NEXT: ret i1 true
3461 %s = ashr exact i4 %x, 3
3462 %c = icmp slt i4 %s, 6
3466 define i1 @ashrslt_03_07_exact(i4 %x) {
3467 ; CHECK-LABEL: @ashrslt_03_07_exact(
3468 ; CHECK-NEXT: ret i1 true
3470 %s = ashr exact i4 %x, 3
3471 %c = icmp slt i4 %s, 7
3475 define i1 @ashrslt_03_08_exact(i4 %x) {
3476 ; CHECK-LABEL: @ashrslt_03_08_exact(
3477 ; CHECK-NEXT: ret i1 false
3479 %s = ashr exact i4 %x, 3
3480 %c = icmp slt i4 %s, 8
3484 define i1 @ashrslt_03_09_exact(i4 %x) {
3485 ; CHECK-LABEL: @ashrslt_03_09_exact(
3486 ; CHECK-NEXT: ret i1 false
3488 %s = ashr exact i4 %x, 3
3489 %c = icmp slt i4 %s, 9
3493 define i1 @ashrslt_03_10_exact(i4 %x) {
3494 ; CHECK-LABEL: @ashrslt_03_10_exact(
3495 ; CHECK-NEXT: ret i1 false
3497 %s = ashr exact i4 %x, 3
3498 %c = icmp slt i4 %s, 10
3502 define i1 @ashrslt_03_11_exact(i4 %x) {
3503 ; CHECK-LABEL: @ashrslt_03_11_exact(
3504 ; CHECK-NEXT: ret i1 false
3506 %s = ashr exact i4 %x, 3
3507 %c = icmp slt i4 %s, 11
3511 define i1 @ashrslt_03_12_exact(i4 %x) {
3512 ; CHECK-LABEL: @ashrslt_03_12_exact(
3513 ; CHECK-NEXT: ret i1 false
3515 %s = ashr exact i4 %x, 3
3516 %c = icmp slt i4 %s, 12
3520 define i1 @ashrslt_03_13_exact(i4 %x) {
3521 ; CHECK-LABEL: @ashrslt_03_13_exact(
3522 ; CHECK-NEXT: ret i1 false
3524 %s = ashr exact i4 %x, 3
3525 %c = icmp slt i4 %s, 13
3529 define i1 @ashrslt_03_14_exact(i4 %x) {
3530 ; CHECK-LABEL: @ashrslt_03_14_exact(
3531 ; CHECK-NEXT: ret i1 false
3533 %s = ashr exact i4 %x, 3
3534 %c = icmp slt i4 %s, 14
3538 define i1 @ashrslt_03_15_exact(i4 %x) {
3539 ; CHECK-LABEL: @ashrslt_03_15_exact(
3540 ; CHECK-NEXT: ret i1 false
3542 %s = ashr exact i4 %x, 3
3543 %c = icmp slt i4 %s, 15