@@ -825,3 +825,56 @@ define <vscale x 2 x i1> @select_cond_x_cond(<vscale x 2 x i1> %x, <vscale x 2 x
825
825
%a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , <vscale x 2 x i1 > %x , i32 %evl )
826
826
ret <vscale x 2 x i1 > %a
827
827
}
828
+
829
+ define <vscale x 2 x i1 > @select_undef_T_F (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , i32 zeroext %evl ) {
830
+ ; CHECK-LABEL: select_undef_T_F:
831
+ ; CHECK: # %bb.0:
832
+ ; CHECK-NEXT: vmv1r.v v0, v8
833
+ ; CHECK-NEXT: ret
834
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > undef , <vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , i32 %evl )
835
+ ret <vscale x 2 x i1 > %a
836
+ }
837
+
838
+ define <vscale x 2 x i1 > @select_undef_undef_F (<vscale x 2 x i1 > %x , i32 zeroext %evl ) {
839
+ ; CHECK-LABEL: select_undef_undef_F:
840
+ ; CHECK: # %bb.0:
841
+ ; CHECK-NEXT: ret
842
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > undef , <vscale x 2 x i1 > undef , <vscale x 2 x i1 > %x , i32 %evl )
843
+ ret <vscale x 2 x i1 > %a
844
+ }
845
+
846
+ define <vscale x 2 x i1 > @select_unknown_undef_F (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , i32 zeroext %evl ) {
847
+ ; CHECK-LABEL: select_unknown_undef_F:
848
+ ; CHECK: # %bb.0:
849
+ ; CHECK-NEXT: vmv1r.v v0, v8
850
+ ; CHECK-NEXT: ret
851
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > undef , <vscale x 2 x i1 > %y , i32 %evl )
852
+ ret <vscale x 2 x i1 > %a
853
+ }
854
+
855
+ define <vscale x 2 x i1 > @select_unknown_T_undef (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , i32 zeroext %evl ) {
856
+ ; CHECK-LABEL: select_unknown_T_undef:
857
+ ; CHECK: # %bb.0:
858
+ ; CHECK-NEXT: vmv1r.v v0, v8
859
+ ; CHECK-NEXT: ret
860
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , <vscale x 2 x i1 > undef , i32 %evl )
861
+ ret <vscale x 2 x i1 > %a
862
+ }
863
+
864
+ define <vscale x 2 x i1 > @select_false_T_F (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , <vscale x 2 x i1 > %z , i32 zeroext %evl ) {
865
+ ; CHECK-LABEL: select_false_T_F:
866
+ ; CHECK: # %bb.0:
867
+ ; CHECK-NEXT: vmv1r.v v0, v9
868
+ ; CHECK-NEXT: ret
869
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > zeroinitializer , <vscale x 2 x i1 > %y , <vscale x 2 x i1 > %z , i32 %evl )
870
+ ret <vscale x 2 x i1 > %a
871
+ }
872
+
873
+ define <vscale x 2 x i1 > @select_unknown_T_T (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , i32 zeroext %evl ) {
874
+ ; CHECK-LABEL: select_unknown_T_T:
875
+ ; CHECK: # %bb.0:
876
+ ; CHECK-NEXT: vmv1r.v v0, v8
877
+ ; CHECK-NEXT: ret
878
+ %a = call <vscale x 2 x i1 > @llvm.vp.select.nxv2i1 (<vscale x 2 x i1 > %x , <vscale x 2 x i1 > %y , <vscale x 2 x i1 > %y , i32 %evl )
879
+ ret <vscale x 2 x i1 > %a
880
+ }
0 commit comments