@@ -91,9 +91,8 @@ define <vscale x 1 x i8> @vmadd_vv_nxv1i8_ta(<vscale x 1 x i8> %a, <vscale x 1 x
91
91
define <vscale x 1 x i8 > @vmadd_vx_nxv1i8_ta (<vscale x 1 x i8 > %a , i8 %b , <vscale x 1 x i8 > %c , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
92
92
; CHECK-LABEL: vmadd_vx_nxv1i8_ta:
93
93
; CHECK: # %bb.0:
94
- ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma
95
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
96
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
94
+ ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, mu
95
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
97
96
; CHECK-NEXT: ret
98
97
%elt.head = insertelement <vscale x 1 x i8 > poison, i8 %b , i32 0
99
98
%vb = shufflevector <vscale x 1 x i8 > %elt.head , <vscale x 1 x i8 > poison, <vscale x 1 x i32 > zeroinitializer
@@ -192,9 +191,8 @@ define <vscale x 2 x i8> @vmadd_vv_nxv2i8_ta(<vscale x 2 x i8> %a, <vscale x 2 x
192
191
define <vscale x 2 x i8 > @vmadd_vx_nxv2i8_ta (<vscale x 2 x i8 > %a , i8 %b , <vscale x 2 x i8 > %c , <vscale x 2 x i1 > %m , i32 zeroext %evl ) {
193
192
; CHECK-LABEL: vmadd_vx_nxv2i8_ta:
194
193
; CHECK: # %bb.0:
195
- ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma
196
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
197
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
194
+ ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, mu
195
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
198
196
; CHECK-NEXT: ret
199
197
%elt.head = insertelement <vscale x 2 x i8 > poison, i8 %b , i32 0
200
198
%vb = shufflevector <vscale x 2 x i8 > %elt.head , <vscale x 2 x i8 > poison, <vscale x 2 x i32 > zeroinitializer
@@ -293,9 +291,8 @@ define <vscale x 4 x i8> @vmadd_vv_nxv4i8_ta(<vscale x 4 x i8> %a, <vscale x 4 x
293
291
define <vscale x 4 x i8 > @vmadd_vx_nxv4i8_ta (<vscale x 4 x i8 > %a , i8 %b , <vscale x 4 x i8 > %c , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
294
292
; CHECK-LABEL: vmadd_vx_nxv4i8_ta:
295
293
; CHECK: # %bb.0:
296
- ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
297
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
298
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
294
+ ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, mu
295
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
299
296
; CHECK-NEXT: ret
300
297
%elt.head = insertelement <vscale x 4 x i8 > poison, i8 %b , i32 0
301
298
%vb = shufflevector <vscale x 4 x i8 > %elt.head , <vscale x 4 x i8 > poison, <vscale x 4 x i32 > zeroinitializer
@@ -394,9 +391,8 @@ define <vscale x 8 x i8> @vmadd_vv_nxv8i8_ta(<vscale x 8 x i8> %a, <vscale x 8 x
394
391
define <vscale x 8 x i8 > @vmadd_vx_nxv8i8_ta (<vscale x 8 x i8 > %a , i8 %b , <vscale x 8 x i8 > %c , <vscale x 8 x i1 > %m , i32 zeroext %evl ) {
395
392
; CHECK-LABEL: vmadd_vx_nxv8i8_ta:
396
393
; CHECK: # %bb.0:
397
- ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
398
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
399
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
394
+ ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, mu
395
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
400
396
; CHECK-NEXT: ret
401
397
%elt.head = insertelement <vscale x 8 x i8 > poison, i8 %b , i32 0
402
398
%vb = shufflevector <vscale x 8 x i8 > %elt.head , <vscale x 8 x i8 > poison, <vscale x 8 x i32 > zeroinitializer
@@ -495,9 +491,8 @@ define <vscale x 16 x i8> @vmadd_vv_nxv16i8_ta(<vscale x 16 x i8> %a, <vscale x
495
491
define <vscale x 16 x i8 > @vmadd_vx_nxv16i8_ta (<vscale x 16 x i8 > %a , i8 %b , <vscale x 16 x i8 > %c , <vscale x 16 x i1 > %m , i32 zeroext %evl ) {
496
492
; CHECK-LABEL: vmadd_vx_nxv16i8_ta:
497
493
; CHECK: # %bb.0:
498
- ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma
499
- ; CHECK-NEXT: vmacc.vx v10, a0, v8
500
- ; CHECK-NEXT: vmerge.vvm v8, v8, v10, v0
494
+ ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, mu
495
+ ; CHECK-NEXT: vmadd.vx v8, a0, v10, v0.t
501
496
; CHECK-NEXT: ret
502
497
%elt.head = insertelement <vscale x 16 x i8 > poison, i8 %b , i32 0
503
498
%vb = shufflevector <vscale x 16 x i8 > %elt.head , <vscale x 16 x i8 > poison, <vscale x 16 x i32 > zeroinitializer
@@ -596,9 +591,8 @@ define <vscale x 32 x i8> @vmadd_vv_nxv32i8_ta(<vscale x 32 x i8> %a, <vscale x
596
591
define <vscale x 32 x i8 > @vmadd_vx_nxv32i8_ta (<vscale x 32 x i8 > %a , i8 %b , <vscale x 32 x i8 > %c , <vscale x 32 x i1 > %m , i32 zeroext %evl ) {
597
592
; CHECK-LABEL: vmadd_vx_nxv32i8_ta:
598
593
; CHECK: # %bb.0:
599
- ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma
600
- ; CHECK-NEXT: vmacc.vx v12, a0, v8
601
- ; CHECK-NEXT: vmerge.vvm v8, v8, v12, v0
594
+ ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, mu
595
+ ; CHECK-NEXT: vmadd.vx v8, a0, v12, v0.t
602
596
; CHECK-NEXT: ret
603
597
%elt.head = insertelement <vscale x 32 x i8 > poison, i8 %b , i32 0
604
598
%vb = shufflevector <vscale x 32 x i8 > %elt.head , <vscale x 32 x i8 > poison, <vscale x 32 x i32 > zeroinitializer
@@ -700,9 +694,8 @@ define <vscale x 64 x i8> @vmadd_vv_nxv64i8_ta(<vscale x 64 x i8> %a, <vscale x
700
694
define <vscale x 64 x i8 > @vmadd_vx_nxv64i8_ta (<vscale x 64 x i8 > %a , i8 %b , <vscale x 64 x i8 > %c , <vscale x 64 x i1 > %m , i32 zeroext %evl ) {
701
695
; CHECK-LABEL: vmadd_vx_nxv64i8_ta:
702
696
; CHECK: # %bb.0:
703
- ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma
704
- ; CHECK-NEXT: vmacc.vx v16, a0, v8
705
- ; CHECK-NEXT: vmerge.vvm v8, v8, v16, v0
697
+ ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, mu
698
+ ; CHECK-NEXT: vmadd.vx v8, a0, v16, v0.t
706
699
; CHECK-NEXT: ret
707
700
%elt.head = insertelement <vscale x 64 x i8 > poison, i8 %b , i32 0
708
701
%vb = shufflevector <vscale x 64 x i8 > %elt.head , <vscale x 64 x i8 > poison, <vscale x 64 x i32 > zeroinitializer
@@ -801,9 +794,8 @@ define <vscale x 1 x i16> @vmadd_vv_nxv1i16_ta(<vscale x 1 x i16> %a, <vscale x
801
794
define <vscale x 1 x i16 > @vmadd_vx_nxv1i16_ta (<vscale x 1 x i16 > %a , i16 %b , <vscale x 1 x i16 > %c , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
802
795
; CHECK-LABEL: vmadd_vx_nxv1i16_ta:
803
796
; CHECK: # %bb.0:
804
- ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma
805
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
806
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
797
+ ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, mu
798
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
807
799
; CHECK-NEXT: ret
808
800
%elt.head = insertelement <vscale x 1 x i16 > poison, i16 %b , i32 0
809
801
%vb = shufflevector <vscale x 1 x i16 > %elt.head , <vscale x 1 x i16 > poison, <vscale x 1 x i32 > zeroinitializer
@@ -902,9 +894,8 @@ define <vscale x 2 x i16> @vmadd_vv_nxv2i16_ta(<vscale x 2 x i16> %a, <vscale x
902
894
define <vscale x 2 x i16 > @vmadd_vx_nxv2i16_ta (<vscale x 2 x i16 > %a , i16 %b , <vscale x 2 x i16 > %c , <vscale x 2 x i1 > %m , i32 zeroext %evl ) {
903
895
; CHECK-LABEL: vmadd_vx_nxv2i16_ta:
904
896
; CHECK: # %bb.0:
905
- ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma
906
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
907
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
897
+ ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, mu
898
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
908
899
; CHECK-NEXT: ret
909
900
%elt.head = insertelement <vscale x 2 x i16 > poison, i16 %b , i32 0
910
901
%vb = shufflevector <vscale x 2 x i16 > %elt.head , <vscale x 2 x i16 > poison, <vscale x 2 x i32 > zeroinitializer
@@ -1003,9 +994,8 @@ define <vscale x 4 x i16> @vmadd_vv_nxv4i16_ta(<vscale x 4 x i16> %a, <vscale x
1003
994
define <vscale x 4 x i16 > @vmadd_vx_nxv4i16_ta (<vscale x 4 x i16 > %a , i16 %b , <vscale x 4 x i16 > %c , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
1004
995
; CHECK-LABEL: vmadd_vx_nxv4i16_ta:
1005
996
; CHECK: # %bb.0:
1006
- ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
1007
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
1008
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
997
+ ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, mu
998
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
1009
999
; CHECK-NEXT: ret
1010
1000
%elt.head = insertelement <vscale x 4 x i16 > poison, i16 %b , i32 0
1011
1001
%vb = shufflevector <vscale x 4 x i16 > %elt.head , <vscale x 4 x i16 > poison, <vscale x 4 x i32 > zeroinitializer
@@ -1104,9 +1094,8 @@ define <vscale x 8 x i16> @vmadd_vv_nxv8i16_ta(<vscale x 8 x i16> %a, <vscale x
1104
1094
define <vscale x 8 x i16 > @vmadd_vx_nxv8i16_ta (<vscale x 8 x i16 > %a , i16 %b , <vscale x 8 x i16 > %c , <vscale x 8 x i1 > %m , i32 zeroext %evl ) {
1105
1095
; CHECK-LABEL: vmadd_vx_nxv8i16_ta:
1106
1096
; CHECK: # %bb.0:
1107
- ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma
1108
- ; CHECK-NEXT: vmacc.vx v10, a0, v8
1109
- ; CHECK-NEXT: vmerge.vvm v8, v8, v10, v0
1097
+ ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1098
+ ; CHECK-NEXT: vmadd.vx v8, a0, v10, v0.t
1110
1099
; CHECK-NEXT: ret
1111
1100
%elt.head = insertelement <vscale x 8 x i16 > poison, i16 %b , i32 0
1112
1101
%vb = shufflevector <vscale x 8 x i16 > %elt.head , <vscale x 8 x i16 > poison, <vscale x 8 x i32 > zeroinitializer
@@ -1205,9 +1194,8 @@ define <vscale x 16 x i16> @vmadd_vv_nxv16i16_ta(<vscale x 16 x i16> %a, <vscale
1205
1194
define <vscale x 16 x i16 > @vmadd_vx_nxv16i16_ta (<vscale x 16 x i16 > %a , i16 %b , <vscale x 16 x i16 > %c , <vscale x 16 x i1 > %m , i32 zeroext %evl ) {
1206
1195
; CHECK-LABEL: vmadd_vx_nxv16i16_ta:
1207
1196
; CHECK: # %bb.0:
1208
- ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma
1209
- ; CHECK-NEXT: vmacc.vx v12, a0, v8
1210
- ; CHECK-NEXT: vmerge.vvm v8, v8, v12, v0
1197
+ ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, mu
1198
+ ; CHECK-NEXT: vmadd.vx v8, a0, v12, v0.t
1211
1199
; CHECK-NEXT: ret
1212
1200
%elt.head = insertelement <vscale x 16 x i16 > poison, i16 %b , i32 0
1213
1201
%vb = shufflevector <vscale x 16 x i16 > %elt.head , <vscale x 16 x i16 > poison, <vscale x 16 x i32 > zeroinitializer
@@ -1309,9 +1297,8 @@ define <vscale x 32 x i16> @vmadd_vv_nxv32i16_ta(<vscale x 32 x i16> %a, <vscale
1309
1297
define <vscale x 32 x i16 > @vmadd_vx_nxv32i16_ta (<vscale x 32 x i16 > %a , i16 %b , <vscale x 32 x i16 > %c , <vscale x 32 x i1 > %m , i32 zeroext %evl ) {
1310
1298
; CHECK-LABEL: vmadd_vx_nxv32i16_ta:
1311
1299
; CHECK: # %bb.0:
1312
- ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma
1313
- ; CHECK-NEXT: vmacc.vx v16, a0, v8
1314
- ; CHECK-NEXT: vmerge.vvm v8, v8, v16, v0
1300
+ ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, mu
1301
+ ; CHECK-NEXT: vmadd.vx v8, a0, v16, v0.t
1315
1302
; CHECK-NEXT: ret
1316
1303
%elt.head = insertelement <vscale x 32 x i16 > poison, i16 %b , i32 0
1317
1304
%vb = shufflevector <vscale x 32 x i16 > %elt.head , <vscale x 32 x i16 > poison, <vscale x 32 x i32 > zeroinitializer
@@ -1410,9 +1397,8 @@ define <vscale x 1 x i32> @vmadd_vv_nxv1i32_ta(<vscale x 1 x i32> %a, <vscale x
1410
1397
define <vscale x 1 x i32 > @vmadd_vx_nxv1i32_ta (<vscale x 1 x i32 > %a , i32 %b , <vscale x 1 x i32 > %c , <vscale x 1 x i1 > %m , i32 zeroext %evl ) {
1411
1398
; CHECK-LABEL: vmadd_vx_nxv1i32_ta:
1412
1399
; CHECK: # %bb.0:
1413
- ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma
1414
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
1415
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
1400
+ ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, mu
1401
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
1416
1402
; CHECK-NEXT: ret
1417
1403
%elt.head = insertelement <vscale x 1 x i32 > poison, i32 %b , i32 0
1418
1404
%vb = shufflevector <vscale x 1 x i32 > %elt.head , <vscale x 1 x i32 > poison, <vscale x 1 x i32 > zeroinitializer
@@ -1511,9 +1497,8 @@ define <vscale x 2 x i32> @vmadd_vv_nxv2i32_ta(<vscale x 2 x i32> %a, <vscale x
1511
1497
define <vscale x 2 x i32 > @vmadd_vx_nxv2i32_ta (<vscale x 2 x i32 > %a , i32 %b , <vscale x 2 x i32 > %c , <vscale x 2 x i1 > %m , i32 zeroext %evl ) {
1512
1498
; CHECK-LABEL: vmadd_vx_nxv2i32_ta:
1513
1499
; CHECK: # %bb.0:
1514
- ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1515
- ; CHECK-NEXT: vmacc.vx v9, a0, v8
1516
- ; CHECK-NEXT: vmerge.vvm v8, v8, v9, v0
1500
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, mu
1501
+ ; CHECK-NEXT: vmadd.vx v8, a0, v9, v0.t
1517
1502
; CHECK-NEXT: ret
1518
1503
%elt.head = insertelement <vscale x 2 x i32 > poison, i32 %b , i32 0
1519
1504
%vb = shufflevector <vscale x 2 x i32 > %elt.head , <vscale x 2 x i32 > poison, <vscale x 2 x i32 > zeroinitializer
@@ -1612,9 +1597,8 @@ define <vscale x 4 x i32> @vmadd_vv_nxv4i32_ta(<vscale x 4 x i32> %a, <vscale x
1612
1597
define <vscale x 4 x i32 > @vmadd_vx_nxv4i32_ta (<vscale x 4 x i32 > %a , i32 %b , <vscale x 4 x i32 > %c , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
1613
1598
; CHECK-LABEL: vmadd_vx_nxv4i32_ta:
1614
1599
; CHECK: # %bb.0:
1615
- ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma
1616
- ; CHECK-NEXT: vmacc.vx v10, a0, v8
1617
- ; CHECK-NEXT: vmerge.vvm v8, v8, v10, v0
1600
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, mu
1601
+ ; CHECK-NEXT: vmadd.vx v8, a0, v10, v0.t
1618
1602
; CHECK-NEXT: ret
1619
1603
%elt.head = insertelement <vscale x 4 x i32 > poison, i32 %b , i32 0
1620
1604
%vb = shufflevector <vscale x 4 x i32 > %elt.head , <vscale x 4 x i32 > poison, <vscale x 4 x i32 > zeroinitializer
@@ -1713,9 +1697,8 @@ define <vscale x 8 x i32> @vmadd_vv_nxv8i32_ta(<vscale x 8 x i32> %a, <vscale x
1713
1697
define <vscale x 8 x i32 > @vmadd_vx_nxv8i32_ta (<vscale x 8 x i32 > %a , i32 %b , <vscale x 8 x i32 > %c , <vscale x 8 x i1 > %m , i32 zeroext %evl ) {
1714
1698
; CHECK-LABEL: vmadd_vx_nxv8i32_ta:
1715
1699
; CHECK: # %bb.0:
1716
- ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma
1717
- ; CHECK-NEXT: vmacc.vx v12, a0, v8
1718
- ; CHECK-NEXT: vmerge.vvm v8, v8, v12, v0
1700
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1701
+ ; CHECK-NEXT: vmadd.vx v8, a0, v12, v0.t
1719
1702
; CHECK-NEXT: ret
1720
1703
%elt.head = insertelement <vscale x 8 x i32 > poison, i32 %b , i32 0
1721
1704
%vb = shufflevector <vscale x 8 x i32 > %elt.head , <vscale x 8 x i32 > poison, <vscale x 8 x i32 > zeroinitializer
@@ -1817,9 +1800,8 @@ define <vscale x 16 x i32> @vmadd_vv_nxv16i32_ta(<vscale x 16 x i32> %a, <vscale
1817
1800
define <vscale x 16 x i32 > @vmadd_vx_nxv16i32_ta (<vscale x 16 x i32 > %a , i32 %b , <vscale x 16 x i32 > %c , <vscale x 16 x i1 > %m , i32 zeroext %evl ) {
1818
1801
; CHECK-LABEL: vmadd_vx_nxv16i32_ta:
1819
1802
; CHECK: # %bb.0:
1820
- ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1821
- ; CHECK-NEXT: vmacc.vx v16, a0, v8
1822
- ; CHECK-NEXT: vmerge.vvm v8, v8, v16, v0
1803
+ ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, mu
1804
+ ; CHECK-NEXT: vmadd.vx v8, a0, v16, v0.t
1823
1805
; CHECK-NEXT: ret
1824
1806
%elt.head = insertelement <vscale x 16 x i32 > poison, i32 %b , i32 0
1825
1807
%vb = shufflevector <vscale x 16 x i32 > %elt.head , <vscale x 16 x i32 > poison, <vscale x 16 x i32 > zeroinitializer
@@ -1965,9 +1947,8 @@ define <vscale x 1 x i64> @vmadd_vx_nxv1i64_ta(<vscale x 1 x i64> %a, i64 %b, <v
1965
1947
;
1966
1948
; RV64-LABEL: vmadd_vx_nxv1i64_ta:
1967
1949
; RV64: # %bb.0:
1968
- ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma
1969
- ; RV64-NEXT: vmacc.vx v9, a0, v8
1970
- ; RV64-NEXT: vmerge.vvm v8, v8, v9, v0
1950
+ ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, mu
1951
+ ; RV64-NEXT: vmadd.vx v8, a0, v9, v0.t
1971
1952
; RV64-NEXT: ret
1972
1953
%elt.head = insertelement <vscale x 1 x i64 > poison, i64 %b , i32 0
1973
1954
%vb = shufflevector <vscale x 1 x i64 > %elt.head , <vscale x 1 x i64 > poison, <vscale x 1 x i32 > zeroinitializer
@@ -2113,9 +2094,8 @@ define <vscale x 2 x i64> @vmadd_vx_nxv2i64_ta(<vscale x 2 x i64> %a, i64 %b, <v
2113
2094
;
2114
2095
; RV64-LABEL: vmadd_vx_nxv2i64_ta:
2115
2096
; RV64: # %bb.0:
2116
- ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, ma
2117
- ; RV64-NEXT: vmacc.vx v10, a0, v8
2118
- ; RV64-NEXT: vmerge.vvm v8, v8, v10, v0
2097
+ ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, mu
2098
+ ; RV64-NEXT: vmadd.vx v8, a0, v10, v0.t
2119
2099
; RV64-NEXT: ret
2120
2100
%elt.head = insertelement <vscale x 2 x i64 > poison, i64 %b , i32 0
2121
2101
%vb = shufflevector <vscale x 2 x i64 > %elt.head , <vscale x 2 x i64 > poison, <vscale x 2 x i32 > zeroinitializer
@@ -2261,9 +2241,8 @@ define <vscale x 4 x i64> @vmadd_vx_nxv4i64_ta(<vscale x 4 x i64> %a, i64 %b, <v
2261
2241
;
2262
2242
; RV64-LABEL: vmadd_vx_nxv4i64_ta:
2263
2243
; RV64: # %bb.0:
2264
- ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, ma
2265
- ; RV64-NEXT: vmacc.vx v12, a0, v8
2266
- ; RV64-NEXT: vmerge.vvm v8, v8, v12, v0
2244
+ ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, mu
2245
+ ; RV64-NEXT: vmadd.vx v8, a0, v12, v0.t
2267
2246
; RV64-NEXT: ret
2268
2247
%elt.head = insertelement <vscale x 4 x i64 > poison, i64 %b , i32 0
2269
2248
%vb = shufflevector <vscale x 4 x i64 > %elt.head , <vscale x 4 x i64 > poison, <vscale x 4 x i32 > zeroinitializer
@@ -2412,9 +2391,8 @@ define <vscale x 8 x i64> @vmadd_vx_nxv8i64_ta(<vscale x 8 x i64> %a, i64 %b, <v
2412
2391
;
2413
2392
; RV64-LABEL: vmadd_vx_nxv8i64_ta:
2414
2393
; RV64: # %bb.0:
2415
- ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, ma
2416
- ; RV64-NEXT: vmacc.vx v16, a0, v8
2417
- ; RV64-NEXT: vmerge.vvm v8, v8, v16, v0
2394
+ ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2395
+ ; RV64-NEXT: vmadd.vx v8, a0, v16, v0.t
2418
2396
; RV64-NEXT: ret
2419
2397
%elt.head = insertelement <vscale x 8 x i64 > poison, i64 %b , i32 0
2420
2398
%vb = shufflevector <vscale x 8 x i64 > %elt.head , <vscale x 8 x i64 > poison, <vscale x 8 x i32 > zeroinitializer
0 commit comments