@@ -557,15 +557,9 @@ define i1 @shl1_trunc_sgt4(i32 %a) {
557
557
}
558
558
559
559
define i1 @eq_nuw (i32 %x ) {
560
- ; DL64-LABEL: @eq_nuw(
561
- ; DL64-NEXT: [[TMP1:%.*]] = and i32 [[X:%.*]], 255
562
- ; DL64-NEXT: [[R:%.*]] = icmp eq i32 [[TMP1]], 123
563
- ; DL64-NEXT: ret i1 [[R]]
564
- ;
565
- ; DL8-LABEL: @eq_nuw(
566
- ; DL8-NEXT: [[T:%.*]] = trunc nuw i32 [[X:%.*]] to i8
567
- ; DL8-NEXT: [[R:%.*]] = icmp eq i8 [[T]], 123
568
- ; DL8-NEXT: ret i1 [[R]]
560
+ ; CHECK-LABEL: @eq_nuw(
561
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i32 [[X:%.*]], 123
562
+ ; CHECK-NEXT: ret i1 [[R]]
569
563
;
570
564
%t = trunc nuw i32 %x to i8
571
565
%r = icmp eq i8 %t , 123
@@ -574,8 +568,7 @@ define i1 @eq_nuw(i32 %x) {
574
568
575
569
define i1 @ult_nuw (i32 %x ) {
576
570
; CHECK-LABEL: @ult_nuw(
577
- ; CHECK-NEXT: [[T:%.*]] = trunc nuw i32 [[X:%.*]] to i8
578
- ; CHECK-NEXT: [[R:%.*]] = icmp ult i8 [[T]], 45
571
+ ; CHECK-NEXT: [[R:%.*]] = icmp ult i32 [[X:%.*]], 45
579
572
; CHECK-NEXT: ret i1 [[R]]
580
573
;
581
574
%t = trunc nuw i32 %x to i8
@@ -586,7 +579,7 @@ define i1 @ult_nuw(i32 %x) {
586
579
define i1 @ule_nuw (i32 %x ) {
587
580
; CHECK-LABEL: @ule_nuw(
588
581
; CHECK-NEXT: [[T:%.*]] = trunc nuw i32 [[X:%.*]] to i8
589
- ; CHECK-NEXT: [[R:%.*]] = icmp ult i8 [[T ]], 46
582
+ ; CHECK-NEXT: [[R:%.*]] = icmp ult i32 [[X ]], 46
590
583
; CHECK-NEXT: call void @use(i8 [[T]])
591
584
; CHECK-NEXT: ret i1 [[R]]
592
585
;
@@ -598,8 +591,7 @@ define i1 @ule_nuw(i32 %x) {
598
591
599
592
define i1 @ugt_nuw (i32 %x ) {
600
593
; CHECK-LABEL: @ugt_nuw(
601
- ; CHECK-NEXT: [[T:%.*]] = trunc nuw i32 [[X:%.*]] to i8
602
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[T]], 12
594
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i32 [[X:%.*]], 12
603
595
; CHECK-NEXT: ret i1 [[R]]
604
596
;
605
597
%t = trunc nuw i32 %x to i8
@@ -610,7 +602,7 @@ define i1 @ugt_nuw(i32 %x) {
610
602
define i1 @uge_nuw (i32 %x ) {
611
603
; CHECK-LABEL: @uge_nuw(
612
604
; CHECK-NEXT: [[T:%.*]] = trunc nuw i32 [[X:%.*]] to i8
613
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[T ]], 98
605
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i32 [[X ]], 98
614
606
; CHECK-NEXT: call void @use(i8 [[T]])
615
607
; CHECK-NEXT: ret i1 [[R]]
616
608
;
@@ -645,15 +637,9 @@ define i1 @sgt_nuw_fail(i32 %x) {
645
637
}
646
638
647
639
define i1 @ne_nsw (i32 %x ) {
648
- ; DL64-LABEL: @ne_nsw(
649
- ; DL64-NEXT: [[TMP1:%.*]] = and i32 [[X:%.*]], 255
650
- ; DL64-NEXT: [[R:%.*]] = icmp ne i32 [[TMP1]], 123
651
- ; DL64-NEXT: ret i1 [[R]]
652
- ;
653
- ; DL8-LABEL: @ne_nsw(
654
- ; DL8-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
655
- ; DL8-NEXT: [[R:%.*]] = icmp ne i8 [[T]], 123
656
- ; DL8-NEXT: ret i1 [[R]]
640
+ ; CHECK-LABEL: @ne_nsw(
641
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i32 [[X:%.*]], 123
642
+ ; CHECK-NEXT: ret i1 [[R]]
657
643
;
658
644
%t = trunc nsw i32 %x to i8
659
645
%r = icmp ne i8 %t , 123
@@ -662,8 +648,7 @@ define i1 @ne_nsw(i32 %x) {
662
648
663
649
define i1 @slt_nsw (i32 %x ) {
664
650
; CHECK-LABEL: @slt_nsw(
665
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
666
- ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[T]], 45
651
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i32 [[X:%.*]], 45
667
652
; CHECK-NEXT: ret i1 [[R]]
668
653
;
669
654
%t = trunc nsw i32 %x to i8
@@ -674,7 +659,7 @@ define i1 @slt_nsw(i32 %x) {
674
659
define i1 @sle_nsw (i16 %x ) {
675
660
; CHECK-LABEL: @sle_nsw(
676
661
; CHECK-NEXT: [[T:%.*]] = trunc nsw i16 [[X:%.*]] to i8
677
- ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[T ]], 46
662
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i16 [[X ]], 46
678
663
; CHECK-NEXT: call void @use(i8 [[T]])
679
664
; CHECK-NEXT: ret i1 [[R]]
680
665
;
@@ -686,8 +671,7 @@ define i1 @sle_nsw(i16 %x) {
686
671
687
672
define i1 @sgt_nsw (i32 %x ) {
688
673
; CHECK-LABEL: @sgt_nsw(
689
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
690
- ; CHECK-NEXT: [[R:%.*]] = icmp sgt i8 [[T]], 12
674
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt i32 [[X:%.*]], 12
691
675
; CHECK-NEXT: ret i1 [[R]]
692
676
;
693
677
%t = trunc nsw i32 %x to i8
@@ -696,11 +680,17 @@ define i1 @sgt_nsw(i32 %x) {
696
680
}
697
681
698
682
define i1 @sge_nsw (i64 %x ) {
699
- ; CHECK-LABEL: @sge_nsw(
700
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw i64 [[X:%.*]] to i8
701
- ; CHECK-NEXT: [[R:%.*]] = icmp sgt i8 [[T]], 98
702
- ; CHECK-NEXT: call void @use(i8 [[T]])
703
- ; CHECK-NEXT: ret i1 [[R]]
683
+ ; DL64-LABEL: @sge_nsw(
684
+ ; DL64-NEXT: [[T:%.*]] = trunc nsw i64 [[X:%.*]] to i8
685
+ ; DL64-NEXT: [[R:%.*]] = icmp sgt i64 [[X]], 98
686
+ ; DL64-NEXT: call void @use(i8 [[T]])
687
+ ; DL64-NEXT: ret i1 [[R]]
688
+ ;
689
+ ; DL8-LABEL: @sge_nsw(
690
+ ; DL8-NEXT: [[T:%.*]] = trunc nsw i64 [[X:%.*]] to i8
691
+ ; DL8-NEXT: [[R:%.*]] = icmp sgt i8 [[T]], 98
692
+ ; DL8-NEXT: call void @use(i8 [[T]])
693
+ ; DL8-NEXT: ret i1 [[R]]
704
694
;
705
695
%t = trunc nsw i64 %x to i8
706
696
%r = icmp sge i8 %t , 99
@@ -726,8 +716,7 @@ define i1 @sge_nsw_i48(i48 %x) {
726
716
727
717
define <2 x i1 > @uge_nsw (<2 x i32 > %x ) {
728
718
; CHECK-LABEL: @uge_nsw(
729
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw <2 x i32> [[X:%.*]] to <2 x i8>
730
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt <2 x i8> [[T]], <i8 44, i8 44>
719
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt <2 x i32> [[X:%.*]], <i32 44, i32 44>
731
720
; CHECK-NEXT: ret <2 x i1> [[R]]
732
721
;
733
722
%t = trunc nsw <2 x i32 > %x to <2 x i8 >
0 commit comments