@@ -637,44 +637,62 @@ define <4 x i32> @compare_sext_uge_v4i32 (<4 x i32> %x, <4 x i32> %y) {
637
637
}
638
638
639
639
; CHECK-LABEL: compare_eq_v2i64:
640
+ ; NO-SIMD128-NOT: i64x2
640
641
; SIMD128-NEXT: .functype compare_eq_v2i64 (v128, v128) -> (v128){{$}}
642
+ ; SIMD128-NEXT: i64x2.eq $push[[R:[0-9]+]]=, $0, $1{{$}}
643
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
641
644
define <2 x i1 > @compare_eq_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
642
645
%res = icmp eq <2 x i64 > %x , %y
643
646
ret <2 x i1 > %res
644
647
}
645
648
646
649
; CHECK-LABEL: compare_sext_eq_v2i64:
650
+ ; NO-SIMD128-NOT: i64x2
647
651
; SIMD128-NEXT: .functype compare_sext_eq_v2i64 (v128, v128) -> (v128){{$}}
652
+ ; SIMD128-NEXT: i64x2.eq $push[[R:[0-9]+]]=, $0, $1{{$}}
653
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
648
654
define <2 x i64 > @compare_sext_eq_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
649
655
%cmp = icmp eq <2 x i64 > %x , %y
650
656
%res = sext <2 x i1 > %cmp to <2 x i64 >
651
657
ret <2 x i64 > %res
652
658
}
653
659
654
660
; CHECK-LABEL: compare_ne_v2i64:
661
+ ; NO-SIMD128-NOT: i64x2
655
662
; SIMD128-NEXT: .functype compare_ne_v2i64 (v128, v128) -> (v128){{$}}
663
+ ; SIMD128-NEXT: i64x2.ne $push[[R:[0-9]+]]=, $0, $1{{$}}
664
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
656
665
define <2 x i1 > @compare_ne_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
657
666
%res = icmp ne <2 x i64 > %x , %y
658
667
ret <2 x i1 > %res
659
668
}
660
669
661
670
; CHECK-LABEL: compare_sext_ne_v2i64:
671
+ ; NO-SIMD128-NOT: i64x2
662
672
; SIMD128-NEXT: .functype compare_sext_ne_v2i64 (v128, v128) -> (v128){{$}}
673
+ ; SIMD128-NEXT: i64x2.ne $push[[R:[0-9]+]]=, $0, $1{{$}}
674
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
663
675
define <2 x i64 > @compare_sext_ne_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
664
676
%cmp = icmp ne <2 x i64 > %x , %y
665
677
%res = sext <2 x i1 > %cmp to <2 x i64 >
666
678
ret <2 x i64 > %res
667
679
}
668
680
669
681
; CHECK-LABEL: compare_slt_v2i64:
682
+ ; NO-SIMD128-NOT: i64x2
670
683
; SIMD128-NEXT: .functype compare_slt_v2i64 (v128, v128) -> (v128){{$}}
684
+ ; SIMD128-NEXT: i64x2.lt_s $push[[R:[0-9]+]]=, $0, $1{{$}}
685
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
671
686
define <2 x i1 > @compare_slt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
672
687
%res = icmp slt <2 x i64 > %x , %y
673
688
ret <2 x i1 > %res
674
689
}
675
690
676
691
; CHECK-LABEL: compare_sext_slt_v2i64:
692
+ ; NO-SIMD128-NOT: i64x2
677
693
; SIMD128-NEXT: .functype compare_sext_slt_v2i64 (v128, v128) -> (v128){{$}}
694
+ ; SIMD128-NEXT: i64x2.lt_s $push[[R:[0-9]+]]=, $0, $1{{$}}
695
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
678
696
define <2 x i64 > @compare_sext_slt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
679
697
%cmp = icmp slt <2 x i64 > %x , %y
680
698
%res = sext <2 x i1 > %cmp to <2 x i64 >
@@ -683,28 +701,36 @@ define <2 x i64> @compare_sext_slt_v2i64 (<2 x i64> %x, <2 x i64> %y) {
683
701
684
702
; CHECK-LABEL: compare_ult_v2i64:
685
703
; SIMD128-NEXT: .functype compare_ult_v2i64 (v128, v128) -> (v128){{$}}
704
+ ; SIMD128: i64.lt_u
686
705
define <2 x i1 > @compare_ult_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
687
706
%res = icmp ult <2 x i64 > %x , %y
688
707
ret <2 x i1 > %res
689
708
}
690
709
691
710
; CHECK-LABEL: compare_sext_ult_v2i64:
692
711
; SIMD128-NEXT: .functype compare_sext_ult_v2i64 (v128, v128) -> (v128){{$}}
712
+ ; SIMD128: i64.lt_u
693
713
define <2 x i64 > @compare_sext_ult_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
694
714
%cmp = icmp ult <2 x i64 > %x , %y
695
715
%res = sext <2 x i1 > %cmp to <2 x i64 >
696
716
ret <2 x i64 > %res
697
717
}
698
718
699
719
; CHECK-LABEL: compare_sle_v2i64:
720
+ ; NO-SIMD128-NOT: i64x2
700
721
; SIMD128-NEXT: .functype compare_sle_v2i64 (v128, v128) -> (v128){{$}}
722
+ ; SIMD128-NEXT: i64x2.le_s $push[[R:[0-9]+]]=, $0, $1{{$}}
723
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
701
724
define <2 x i1 > @compare_sle_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
702
725
%res = icmp sle <2 x i64 > %x , %y
703
726
ret <2 x i1 > %res
704
727
}
705
728
706
729
; CHECK-LABEL: compare_sext_sle_v2i64:
730
+ ; NO-SIMD128-NOT: i64x2
707
731
; SIMD128-NEXT: .functype compare_sext_sle_v2i64 (v128, v128) -> (v128){{$}}
732
+ ; SIMD128-NEXT: i64x2.le_s $push[[R:[0-9]+]]=, $0, $1{{$}}
733
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
708
734
define <2 x i64 > @compare_sext_sle_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
709
735
%cmp = icmp sle <2 x i64 > %x , %y
710
736
%res = sext <2 x i1 > %cmp to <2 x i64 >
@@ -713,28 +739,36 @@ define <2 x i64> @compare_sext_sle_v2i64 (<2 x i64> %x, <2 x i64> %y) {
713
739
714
740
; CHECK-LABEL: compare_ule_v2i64:
715
741
; SIMD128-NEXT: .functype compare_ule_v2i64 (v128, v128) -> (v128){{$}}
742
+ ; SIMD128: i64.le_u
716
743
define <2 x i1 > @compare_ule_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
717
744
%res = icmp ule <2 x i64 > %x , %y
718
745
ret <2 x i1 > %res
719
746
}
720
747
721
748
; CHECK-LABEL: compare_sext_ule_v2i64:
722
749
; SIMD128-NEXT: .functype compare_sext_ule_v2i64 (v128, v128) -> (v128){{$}}
750
+ ; SIMD128: i64.le_u
723
751
define <2 x i64 > @compare_sext_ule_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
724
752
%cmp = icmp ule <2 x i64 > %x , %y
725
753
%res = sext <2 x i1 > %cmp to <2 x i64 >
726
754
ret <2 x i64 > %res
727
755
}
728
756
729
757
; CHECK-LABEL: compare_sgt_v2i64:
758
+ ; NO-SIMD128-NOT: i64x2
730
759
; SIMD128-NEXT: .functype compare_sgt_v2i64 (v128, v128) -> (v128){{$}}
760
+ ; SIMD128-NEXT: i64x2.gt_s $push[[R:[0-9]+]]=, $0, $1{{$}}
761
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
731
762
define <2 x i1 > @compare_sgt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
732
763
%res = icmp sgt <2 x i64 > %x , %y
733
764
ret <2 x i1 > %res
734
765
}
735
766
736
767
; CHECK-LABEL: compare_sext_sgt_v2i64:
768
+ ; NO-SIMD128-NOT: i64x2
737
769
; SIMD128-NEXT: .functype compare_sext_sgt_v2i64 (v128, v128) -> (v128){{$}}
770
+ ; SIMD128-NEXT: i64x2.gt_s $push[[R:[0-9]+]]=, $0, $1{{$}}
771
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
738
772
define <2 x i64 > @compare_sext_sgt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
739
773
%cmp = icmp sgt <2 x i64 > %x , %y
740
774
%res = sext <2 x i1 > %cmp to <2 x i64 >
@@ -743,28 +777,36 @@ define <2 x i64> @compare_sext_sgt_v2i64 (<2 x i64> %x, <2 x i64> %y) {
743
777
744
778
; CHECK-LABEL: compare_ugt_v2i64:
745
779
; SIMD128-NEXT: .functype compare_ugt_v2i64 (v128, v128) -> (v128){{$}}
780
+ ; SIMD128: i64.gt_u
746
781
define <2 x i1 > @compare_ugt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
747
782
%res = icmp ugt <2 x i64 > %x , %y
748
783
ret <2 x i1 > %res
749
784
}
750
785
751
786
; CHECK-LABEL: compare_sext_ugt_v2i64:
752
787
; SIMD128-NEXT: .functype compare_sext_ugt_v2i64 (v128, v128) -> (v128){{$}}
788
+ ; SIMD128: i64.gt_u
753
789
define <2 x i64 > @compare_sext_ugt_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
754
790
%cmp = icmp ugt <2 x i64 > %x , %y
755
791
%res = sext <2 x i1 > %cmp to <2 x i64 >
756
792
ret <2 x i64 > %res
757
793
}
758
794
759
795
; CHECK-LABEL: compare_sge_v2i64:
796
+ ; NO-SIMD128-NOT: i64x2
760
797
; SIMD128-NEXT: .functype compare_sge_v2i64 (v128, v128) -> (v128){{$}}
798
+ ; SIMD128-NEXT: i64x2.ge_s $push[[R:[0-9]+]]=, $0, $1{{$}}
799
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
761
800
define <2 x i1 > @compare_sge_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
762
801
%res = icmp sge <2 x i64 > %x , %y
763
802
ret <2 x i1 > %res
764
803
}
765
804
766
805
; CHECK-LABEL: compare_sext_sge_v2i64:
806
+ ; NO-SIMD128-NOT: i64x2
767
807
; SIMD128-NEXT: .functype compare_sext_sge_v2i64 (v128, v128) -> (v128){{$}}
808
+ ; SIMD128-NEXT: i64x2.ge_s $push[[R:[0-9]+]]=, $0, $1{{$}}
809
+ ; SIMD128-NEXT: return $pop[[R]]{{$}}
768
810
define <2 x i64 > @compare_sext_sge_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
769
811
%cmp = icmp sge <2 x i64 > %x , %y
770
812
%res = sext <2 x i1 > %cmp to <2 x i64 >
@@ -773,13 +815,15 @@ define <2 x i64> @compare_sext_sge_v2i64 (<2 x i64> %x, <2 x i64> %y) {
773
815
774
816
; CHECK-LABEL: compare_uge_v2i64:
775
817
; SIMD128-NEXT: .functype compare_uge_v2i64 (v128, v128) -> (v128){{$}}
818
+ ; SIMD128: i64.ge_u
776
819
define <2 x i1 > @compare_uge_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
777
820
%res = icmp uge <2 x i64 > %x , %y
778
821
ret <2 x i1 > %res
779
822
}
780
823
781
824
; CHECK-LABEL: compare_sext_uge_v2i64:
782
825
; SIMD128-NEXT: .functype compare_sext_uge_v2i64 (v128, v128) -> (v128){{$}}
826
+ ; SIMD128: i64.ge_u
783
827
define <2 x i64 > @compare_sext_uge_v2i64 (<2 x i64 > %x , <2 x i64 > %y ) {
784
828
%cmp = icmp uge <2 x i64 > %x , %y
785
829
%res = sext <2 x i1 > %cmp to <2 x i64 >
0 commit comments