@@ -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 (i48 %x ) {
611
603
; CHECK-LABEL: @uge_nuw(
612
604
; CHECK-NEXT: [[T:%.*]] = trunc nuw i48 [[X:%.*]] to i8
613
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[T ]], 98
605
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt i48 [[X ]], 98
614
606
; CHECK-NEXT: call void @use(i8 [[T]])
615
607
; CHECK-NEXT: ret i1 [[R]]
616
608
;
@@ -632,15 +624,9 @@ define i1 @sgt_nuw_fail(i32 %x) {
632
624
}
633
625
634
626
define i1 @ne_nsw (i32 %x ) {
635
- ; DL64-LABEL: @ne_nsw(
636
- ; DL64-NEXT: [[TMP1:%.*]] = and i32 [[X:%.*]], 255
637
- ; DL64-NEXT: [[R:%.*]] = icmp ne i32 [[TMP1]], 123
638
- ; DL64-NEXT: ret i1 [[R]]
639
- ;
640
- ; DL8-LABEL: @ne_nsw(
641
- ; DL8-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
642
- ; DL8-NEXT: [[R:%.*]] = icmp ne i8 [[T]], 123
643
- ; DL8-NEXT: ret i1 [[R]]
627
+ ; CHECK-LABEL: @ne_nsw(
628
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i32 [[X:%.*]], 123
629
+ ; CHECK-NEXT: ret i1 [[R]]
644
630
;
645
631
%t = trunc nsw i32 %x to i8
646
632
%r = icmp ne i8 %t , 123
@@ -649,8 +635,7 @@ define i1 @ne_nsw(i32 %x) {
649
635
650
636
define i1 @slt_nsw (i32 %x ) {
651
637
; CHECK-LABEL: @slt_nsw(
652
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
653
- ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[T]], 45
638
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i32 [[X:%.*]], 45
654
639
; CHECK-NEXT: ret i1 [[R]]
655
640
;
656
641
%t = trunc nsw i32 %x to i8
@@ -661,7 +646,7 @@ define i1 @slt_nsw(i32 %x) {
661
646
define i1 @sle_nsw (i32 %x ) {
662
647
; CHECK-LABEL: @sle_nsw(
663
648
; CHECK-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
664
- ; CHECK-NEXT: [[R:%.*]] = icmp slt i8 [[T ]], 46
649
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i32 [[X ]], 46
665
650
; CHECK-NEXT: call void @use(i8 [[T]])
666
651
; CHECK-NEXT: ret i1 [[R]]
667
652
;
@@ -673,8 +658,7 @@ define i1 @sle_nsw(i32 %x) {
673
658
674
659
define i1 @sgt_nsw (i32 %x ) {
675
660
; CHECK-LABEL: @sgt_nsw(
676
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw i32 [[X:%.*]] to i8
677
- ; CHECK-NEXT: [[R:%.*]] = icmp sgt i8 [[T]], 12
661
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt i32 [[X:%.*]], 12
678
662
; CHECK-NEXT: ret i1 [[R]]
679
663
;
680
664
%t = trunc nsw i32 %x to i8
@@ -685,7 +669,7 @@ define i1 @sgt_nsw(i32 %x) {
685
669
define i1 @sge_nsw (i48 %x ) {
686
670
; CHECK-LABEL: @sge_nsw(
687
671
; CHECK-NEXT: [[T:%.*]] = trunc nsw i48 [[X:%.*]] to i8
688
- ; CHECK-NEXT: [[R:%.*]] = icmp sgt i8 [[T ]], 98
672
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt i48 [[X ]], 98
689
673
; CHECK-NEXT: call void @use(i8 [[T]])
690
674
; CHECK-NEXT: ret i1 [[R]]
691
675
;
@@ -698,8 +682,7 @@ define i1 @sge_nsw(i48 %x) {
698
682
699
683
define <2 x i1 > @uge_nsw (<2 x i32 > %x ) {
700
684
; CHECK-LABEL: @uge_nsw(
701
- ; CHECK-NEXT: [[T:%.*]] = trunc nsw <2 x i32> [[X:%.*]] to <2 x i8>
702
- ; CHECK-NEXT: [[R:%.*]] = icmp ugt <2 x i8> [[T]], <i8 44, i8 44>
685
+ ; CHECK-NEXT: [[R:%.*]] = icmp ugt <2 x i32> [[X:%.*]], <i32 44, i32 44>
703
686
; CHECK-NEXT: ret <2 x i1> [[R]]
704
687
;
705
688
%t = trunc nsw <2 x i32 > %x to <2 x i8 >
0 commit comments