@@ -355,10 +355,10 @@ define <vscale x 1 x i64> @vwmul_vv_nxv1i64_nxv1i16(<vscale x 1 x i16> %va, <vsc
355
355
define <vscale x 1 x i64 > @vwmulu_vv_nxv1i64_nxv1i16 (<vscale x 1 x i16 > %va , <vscale x 1 x i16 > %vb ) {
356
356
; CHECK-LABEL: vwmulu_vv_nxv1i64_nxv1i16:
357
357
; CHECK: # %bb.0:
358
- ; CHECK-NEXT: vsetvli a0, zero, e32, mf2 , ta, ma
359
- ; CHECK-NEXT: vzext.vf2 v10, v8
360
- ; CHECK-NEXT: vzext.vf2 v11, v9
361
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
358
+ ; CHECK-NEXT: vsetvli a0, zero, e16, mf4 , ta, ma
359
+ ; CHECK-NEXT: vwmulu.vv v10, v8, v9
360
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
361
+ ; CHECK-NEXT: vzext.vf2 v8, v10
362
362
; CHECK-NEXT: ret
363
363
%vc = zext <vscale x 1 x i16 > %va to <vscale x 1 x i64 >
364
364
%vd = zext <vscale x 1 x i16 > %vb to <vscale x 1 x i64 >
@@ -402,11 +402,9 @@ define <vscale x 1 x i64> @vwmulu_vx_nxv1i64_nxv1i16(<vscale x 1 x i16> %va, i16
402
402
; CHECK-LABEL: vwmulu_vx_nxv1i64_nxv1i16:
403
403
; CHECK: # %bb.0:
404
404
; CHECK-NEXT: vsetvli a1, zero, e16, mf4, ta, ma
405
- ; CHECK-NEXT: vmv.v.x v9, a0
406
- ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
407
- ; CHECK-NEXT: vzext.vf2 v10, v8
408
- ; CHECK-NEXT: vzext.vf2 v11, v9
409
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
405
+ ; CHECK-NEXT: vwmulu.vx v9, v8, a0
406
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
407
+ ; CHECK-NEXT: vzext.vf2 v8, v9
410
408
; CHECK-NEXT: ret
411
409
%head = insertelement <vscale x 1 x i16 > undef , i16 %b , i16 0
412
410
%splat = shufflevector <vscale x 1 x i16 > %head , <vscale x 1 x i16 > undef , <vscale x 1 x i32 > zeroinitializer
@@ -451,10 +449,10 @@ define <vscale x 2 x i64> @vwmul_vv_nxv2i64_nxv2i16(<vscale x 2 x i16> %va, <vsc
451
449
define <vscale x 2 x i64 > @vwmulu_vv_nxv2i64_nxv2i16 (<vscale x 2 x i16 > %va , <vscale x 2 x i16 > %vb ) {
452
450
; CHECK-LABEL: vwmulu_vv_nxv2i64_nxv2i16:
453
451
; CHECK: # %bb.0:
454
- ; CHECK-NEXT: vsetvli a0, zero, e32, m1 , ta, ma
455
- ; CHECK-NEXT: vzext.vf2 v10, v8
456
- ; CHECK-NEXT: vzext.vf2 v11, v9
457
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
452
+ ; CHECK-NEXT: vsetvli a0, zero, e16, mf2 , ta, ma
453
+ ; CHECK-NEXT: vwmulu.vv v10, v8, v9
454
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m2, ta, ma
455
+ ; CHECK-NEXT: vzext.vf2 v8, v10
458
456
; CHECK-NEXT: ret
459
457
%vc = zext <vscale x 2 x i16 > %va to <vscale x 2 x i64 >
460
458
%vd = zext <vscale x 2 x i16 > %vb to <vscale x 2 x i64 >
@@ -498,11 +496,9 @@ define <vscale x 2 x i64> @vwmulu_vx_nxv2i64_nxv2i16(<vscale x 2 x i16> %va, i16
498
496
; CHECK-LABEL: vwmulu_vx_nxv2i64_nxv2i16:
499
497
; CHECK: # %bb.0:
500
498
; CHECK-NEXT: vsetvli a1, zero, e16, mf2, ta, ma
501
- ; CHECK-NEXT: vmv.v.x v9, a0
502
- ; CHECK-NEXT: vsetvli zero, zero, e32, m1, ta, ma
503
- ; CHECK-NEXT: vzext.vf2 v10, v8
504
- ; CHECK-NEXT: vzext.vf2 v11, v9
505
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
499
+ ; CHECK-NEXT: vwmulu.vx v10, v8, a0
500
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m2, ta, ma
501
+ ; CHECK-NEXT: vzext.vf2 v8, v10
506
502
; CHECK-NEXT: ret
507
503
%head = insertelement <vscale x 2 x i16 > undef , i16 %b , i16 0
508
504
%splat = shufflevector <vscale x 2 x i16 > %head , <vscale x 2 x i16 > undef , <vscale x 2 x i32 > zeroinitializer
@@ -547,10 +543,10 @@ define <vscale x 4 x i64> @vwmul_vv_nxv4i64_nxv4i16(<vscale x 4 x i16> %va, <vsc
547
543
define <vscale x 4 x i64 > @vwmulu_vv_nxv4i64_nxv4i16 (<vscale x 4 x i16 > %va , <vscale x 4 x i16 > %vb ) {
548
544
; CHECK-LABEL: vwmulu_vv_nxv4i64_nxv4i16:
549
545
; CHECK: # %bb.0:
550
- ; CHECK-NEXT: vsetvli a0, zero, e32, m2 , ta, ma
551
- ; CHECK-NEXT: vzext.vf2 v12, v8
552
- ; CHECK-NEXT: vzext.vf2 v14, v9
553
- ; CHECK-NEXT: vwmulu.vv v8, v12, v14
546
+ ; CHECK-NEXT: vsetvli a0, zero, e16, m1 , ta, ma
547
+ ; CHECK-NEXT: vwmulu.vv v12, v8, v9
548
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m4, ta, ma
549
+ ; CHECK-NEXT: vzext.vf2 v8, v12
554
550
; CHECK-NEXT: ret
555
551
%vc = zext <vscale x 4 x i16 > %va to <vscale x 4 x i64 >
556
552
%vd = zext <vscale x 4 x i16 > %vb to <vscale x 4 x i64 >
@@ -594,11 +590,9 @@ define <vscale x 4 x i64> @vwmulu_vx_nxv4i64_nxv4i16(<vscale x 4 x i16> %va, i16
594
590
; CHECK-LABEL: vwmulu_vx_nxv4i64_nxv4i16:
595
591
; CHECK: # %bb.0:
596
592
; CHECK-NEXT: vsetvli a1, zero, e16, m1, ta, ma
597
- ; CHECK-NEXT: vmv.v.x v9, a0
598
- ; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
599
- ; CHECK-NEXT: vzext.vf2 v12, v8
600
- ; CHECK-NEXT: vzext.vf2 v14, v9
601
- ; CHECK-NEXT: vwmulu.vv v8, v12, v14
593
+ ; CHECK-NEXT: vwmulu.vx v12, v8, a0
594
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m4, ta, ma
595
+ ; CHECK-NEXT: vzext.vf2 v8, v12
602
596
; CHECK-NEXT: ret
603
597
%head = insertelement <vscale x 4 x i16 > undef , i16 %b , i16 0
604
598
%splat = shufflevector <vscale x 4 x i16 > %head , <vscale x 4 x i16 > undef , <vscale x 4 x i32 > zeroinitializer
@@ -643,10 +637,10 @@ define <vscale x 8 x i64> @vwmul_vv_nxv8i64_nxv8i16(<vscale x 8 x i16> %va, <vsc
643
637
define <vscale x 8 x i64 > @vwmulu_vv_nxv8i64_nxv8i16 (<vscale x 8 x i16 > %va , <vscale x 8 x i16 > %vb ) {
644
638
; CHECK-LABEL: vwmulu_vv_nxv8i64_nxv8i16:
645
639
; CHECK: # %bb.0:
646
- ; CHECK-NEXT: vsetvli a0, zero, e32, m4 , ta, ma
647
- ; CHECK-NEXT: vzext.vf2 v16, v8
648
- ; CHECK-NEXT: vzext.vf2 v20, v10
649
- ; CHECK-NEXT: vwmulu.vv v8, v16, v20
640
+ ; CHECK-NEXT: vsetvli a0, zero, e16, m2 , ta, ma
641
+ ; CHECK-NEXT: vwmulu.vv v16, v8, v10
642
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m8, ta, ma
643
+ ; CHECK-NEXT: vzext.vf2 v8, v16
650
644
; CHECK-NEXT: ret
651
645
%vc = zext <vscale x 8 x i16 > %va to <vscale x 8 x i64 >
652
646
%vd = zext <vscale x 8 x i16 > %vb to <vscale x 8 x i64 >
@@ -690,11 +684,9 @@ define <vscale x 8 x i64> @vwmulu_vx_nxv8i64_nxv8i16(<vscale x 8 x i16> %va, i16
690
684
; CHECK-LABEL: vwmulu_vx_nxv8i64_nxv8i16:
691
685
; CHECK: # %bb.0:
692
686
; CHECK-NEXT: vsetvli a1, zero, e16, m2, ta, ma
693
- ; CHECK-NEXT: vmv.v.x v10, a0
694
- ; CHECK-NEXT: vsetvli zero, zero, e32, m4, ta, ma
695
- ; CHECK-NEXT: vzext.vf2 v16, v8
696
- ; CHECK-NEXT: vzext.vf2 v20, v10
697
- ; CHECK-NEXT: vwmulu.vv v8, v16, v20
687
+ ; CHECK-NEXT: vwmulu.vx v16, v8, a0
688
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m8, ta, ma
689
+ ; CHECK-NEXT: vzext.vf2 v8, v16
698
690
; CHECK-NEXT: ret
699
691
%head = insertelement <vscale x 8 x i16 > undef , i16 %b , i16 0
700
692
%splat = shufflevector <vscale x 8 x i16 > %head , <vscale x 8 x i16 > undef , <vscale x 8 x i32 > zeroinitializer
@@ -739,10 +731,10 @@ define <vscale x 1 x i64> @vwmul_vv_nxv1i64_nxv1i8(<vscale x 1 x i8> %va, <vscal
739
731
define <vscale x 1 x i64 > @vwmulu_vv_nxv1i64_nxv1i8 (<vscale x 1 x i8 > %va , <vscale x 1 x i8 > %vb ) {
740
732
; CHECK-LABEL: vwmulu_vv_nxv1i64_nxv1i8:
741
733
; CHECK: # %bb.0:
742
- ; CHECK-NEXT: vsetvli a0, zero, e32, mf2 , ta, ma
743
- ; CHECK-NEXT: vzext.vf4 v10, v8
744
- ; CHECK-NEXT: vzext.vf4 v11, v9
745
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
734
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf8 , ta, ma
735
+ ; CHECK-NEXT: vwmulu.vv v10, v8, v9
736
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
737
+ ; CHECK-NEXT: vzext.vf4 v8, v10
746
738
; CHECK-NEXT: ret
747
739
%vc = zext <vscale x 1 x i8 > %va to <vscale x 1 x i64 >
748
740
%vd = zext <vscale x 1 x i8 > %vb to <vscale x 1 x i64 >
@@ -786,11 +778,9 @@ define <vscale x 1 x i64> @vwmulu_vx_nxv1i64_nxv1i8(<vscale x 1 x i8> %va, i8 %b
786
778
; CHECK-LABEL: vwmulu_vx_nxv1i64_nxv1i8:
787
779
; CHECK: # %bb.0:
788
780
; CHECK-NEXT: vsetvli a1, zero, e8, mf8, ta, ma
789
- ; CHECK-NEXT: vmv.v.x v9, a0
790
- ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
791
- ; CHECK-NEXT: vzext.vf4 v10, v8
792
- ; CHECK-NEXT: vzext.vf4 v11, v9
793
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
781
+ ; CHECK-NEXT: vwmulu.vx v9, v8, a0
782
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
783
+ ; CHECK-NEXT: vzext.vf4 v8, v9
794
784
; CHECK-NEXT: ret
795
785
%head = insertelement <vscale x 1 x i8 > undef , i8 %b , i8 0
796
786
%splat = shufflevector <vscale x 1 x i8 > %head , <vscale x 1 x i8 > undef , <vscale x 1 x i32 > zeroinitializer
@@ -835,10 +825,10 @@ define <vscale x 2 x i64> @vwmul_vv_nxv2i64_nxv2i8(<vscale x 2 x i8> %va, <vscal
835
825
define <vscale x 2 x i64 > @vwmulu_vv_nxv2i64_nxv2i8 (<vscale x 2 x i8 > %va , <vscale x 2 x i8 > %vb ) {
836
826
; CHECK-LABEL: vwmulu_vv_nxv2i64_nxv2i8:
837
827
; CHECK: # %bb.0:
838
- ; CHECK-NEXT: vsetvli a0, zero, e32, m1 , ta, ma
839
- ; CHECK-NEXT: vzext.vf4 v10, v8
840
- ; CHECK-NEXT: vzext.vf4 v11, v9
841
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
828
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf4 , ta, ma
829
+ ; CHECK-NEXT: vwmulu.vv v10, v8, v9
830
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m2, ta, ma
831
+ ; CHECK-NEXT: vzext.vf4 v8, v10
842
832
; CHECK-NEXT: ret
843
833
%vc = zext <vscale x 2 x i8 > %va to <vscale x 2 x i64 >
844
834
%vd = zext <vscale x 2 x i8 > %vb to <vscale x 2 x i64 >
@@ -882,11 +872,9 @@ define <vscale x 2 x i64> @vwmulu_vx_nxv2i64_nxv2i8(<vscale x 2 x i8> %va, i8 %b
882
872
; CHECK-LABEL: vwmulu_vx_nxv2i64_nxv2i8:
883
873
; CHECK: # %bb.0:
884
874
; CHECK-NEXT: vsetvli a1, zero, e8, mf4, ta, ma
885
- ; CHECK-NEXT: vmv.v.x v9, a0
886
- ; CHECK-NEXT: vsetvli zero, zero, e32, m1, ta, ma
887
- ; CHECK-NEXT: vzext.vf4 v10, v8
888
- ; CHECK-NEXT: vzext.vf4 v11, v9
889
- ; CHECK-NEXT: vwmulu.vv v8, v10, v11
875
+ ; CHECK-NEXT: vwmulu.vx v10, v8, a0
876
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m2, ta, ma
877
+ ; CHECK-NEXT: vzext.vf4 v8, v10
890
878
; CHECK-NEXT: ret
891
879
%head = insertelement <vscale x 2 x i8 > undef , i8 %b , i8 0
892
880
%splat = shufflevector <vscale x 2 x i8 > %head , <vscale x 2 x i8 > undef , <vscale x 2 x i32 > zeroinitializer
@@ -931,10 +919,10 @@ define <vscale x 4 x i64> @vwmul_vv_nxv4i64_nxv4i8(<vscale x 4 x i8> %va, <vscal
931
919
define <vscale x 4 x i64 > @vwmulu_vv_nxv4i64_nxv4i8 (<vscale x 4 x i8 > %va , <vscale x 4 x i8 > %vb ) {
932
920
; CHECK-LABEL: vwmulu_vv_nxv4i64_nxv4i8:
933
921
; CHECK: # %bb.0:
934
- ; CHECK-NEXT: vsetvli a0, zero, e32, m2 , ta, ma
935
- ; CHECK-NEXT: vzext.vf4 v12, v8
936
- ; CHECK-NEXT: vzext.vf4 v14, v9
937
- ; CHECK-NEXT: vwmulu.vv v8, v12, v14
922
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf2 , ta, ma
923
+ ; CHECK-NEXT: vwmulu.vv v12, v8, v9
924
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m4, ta, ma
925
+ ; CHECK-NEXT: vzext.vf4 v8, v12
938
926
; CHECK-NEXT: ret
939
927
%vc = zext <vscale x 4 x i8 > %va to <vscale x 4 x i64 >
940
928
%vd = zext <vscale x 4 x i8 > %vb to <vscale x 4 x i64 >
@@ -978,11 +966,9 @@ define <vscale x 4 x i64> @vwmulu_vx_nxv4i64_nxv4i8(<vscale x 4 x i8> %va, i8 %b
978
966
; CHECK-LABEL: vwmulu_vx_nxv4i64_nxv4i8:
979
967
; CHECK: # %bb.0:
980
968
; CHECK-NEXT: vsetvli a1, zero, e8, mf2, ta, ma
981
- ; CHECK-NEXT: vmv.v.x v9, a0
982
- ; CHECK-NEXT: vsetvli zero, zero, e32, m2, ta, ma
983
- ; CHECK-NEXT: vzext.vf4 v12, v8
984
- ; CHECK-NEXT: vzext.vf4 v14, v9
985
- ; CHECK-NEXT: vwmulu.vv v8, v12, v14
969
+ ; CHECK-NEXT: vwmulu.vx v12, v8, a0
970
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m4, ta, ma
971
+ ; CHECK-NEXT: vzext.vf4 v8, v12
986
972
; CHECK-NEXT: ret
987
973
%head = insertelement <vscale x 4 x i8 > undef , i8 %b , i8 0
988
974
%splat = shufflevector <vscale x 4 x i8 > %head , <vscale x 4 x i8 > undef , <vscale x 4 x i32 > zeroinitializer
@@ -1027,10 +1013,10 @@ define <vscale x 8 x i64> @vwmul_vv_nxv8i64_nxv8i8(<vscale x 8 x i8> %va, <vscal
1027
1013
define <vscale x 8 x i64 > @vwmulu_vv_nxv8i64_nxv8i8 (<vscale x 8 x i8 > %va , <vscale x 8 x i8 > %vb ) {
1028
1014
; CHECK-LABEL: vwmulu_vv_nxv8i64_nxv8i8:
1029
1015
; CHECK: # %bb.0:
1030
- ; CHECK-NEXT: vsetvli a0, zero, e32, m4 , ta, ma
1031
- ; CHECK-NEXT: vzext.vf4 v16, v8
1032
- ; CHECK-NEXT: vzext.vf4 v20, v9
1033
- ; CHECK-NEXT: vwmulu.vv v8, v16, v20
1016
+ ; CHECK-NEXT: vsetvli a0, zero, e8, m1 , ta, ma
1017
+ ; CHECK-NEXT: vwmulu.vv v16, v8, v9
1018
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m8, ta, ma
1019
+ ; CHECK-NEXT: vzext.vf4 v8, v16
1034
1020
; CHECK-NEXT: ret
1035
1021
%vc = zext <vscale x 8 x i8 > %va to <vscale x 8 x i64 >
1036
1022
%vd = zext <vscale x 8 x i8 > %vb to <vscale x 8 x i64 >
@@ -1074,11 +1060,9 @@ define <vscale x 8 x i64> @vwmulu_vx_nxv8i64_nxv8i8(<vscale x 8 x i8> %va, i8 %b
1074
1060
; CHECK-LABEL: vwmulu_vx_nxv8i64_nxv8i8:
1075
1061
; CHECK: # %bb.0:
1076
1062
; CHECK-NEXT: vsetvli a1, zero, e8, m1, ta, ma
1077
- ; CHECK-NEXT: vmv.v.x v9, a0
1078
- ; CHECK-NEXT: vsetvli zero, zero, e32, m4, ta, ma
1079
- ; CHECK-NEXT: vzext.vf4 v16, v8
1080
- ; CHECK-NEXT: vzext.vf4 v20, v9
1081
- ; CHECK-NEXT: vwmulu.vv v8, v16, v20
1063
+ ; CHECK-NEXT: vwmulu.vx v16, v8, a0
1064
+ ; CHECK-NEXT: vsetvli zero, zero, e64, m8, ta, ma
1065
+ ; CHECK-NEXT: vzext.vf4 v8, v16
1082
1066
; CHECK-NEXT: ret
1083
1067
%head = insertelement <vscale x 8 x i8 > undef , i8 %b , i8 0
1084
1068
%splat = shufflevector <vscale x 8 x i8 > %head , <vscale x 8 x i8 > undef , <vscale x 8 x i32 > zeroinitializer
0 commit comments