@@ -481,10 +481,8 @@ define arm_aapcs_vfpcc <8 x half> @vfma16_v1_pred(<8 x half> %src1, <8 x half> %
481
481
;
482
482
; CHECK-MVE-VMLA-LABEL: vfma16_v1_pred:
483
483
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
484
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
485
- ; CHECK-MVE-VMLA-NEXT: vcmp.f16 lt, q1, zr
486
- ; CHECK-MVE-VMLA-NEXT: vfma.f16 q3, q1, q2
487
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
484
+ ; CHECK-MVE-VMLA-NEXT: vpt.f16 lt, q1, zr
485
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f16 q0, q1, q2
488
486
; CHECK-MVE-VMLA-NEXT: bx lr
489
487
;
490
488
; CHECK-MVE-LABEL: vfma16_v1_pred:
@@ -628,10 +626,8 @@ define arm_aapcs_vfpcc <8 x half> @vfma16_v2_pred(<8 x half> %src1, <8 x half> %
628
626
;
629
627
; CHECK-MVE-VMLA-LABEL: vfma16_v2_pred:
630
628
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
631
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
632
- ; CHECK-MVE-VMLA-NEXT: vcmp.f16 lt, q1, zr
633
- ; CHECK-MVE-VMLA-NEXT: vfma.f16 q3, q1, q2
634
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
629
+ ; CHECK-MVE-VMLA-NEXT: vpt.f16 lt, q1, zr
630
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f16 q0, q1, q2
635
631
; CHECK-MVE-VMLA-NEXT: bx lr
636
632
;
637
633
; CHECK-MVE-LABEL: vfma16_v2_pred:
@@ -775,10 +771,8 @@ define arm_aapcs_vfpcc <8 x half> @vfms16_pred(<8 x half> %src1, <8 x half> %src
775
771
;
776
772
; CHECK-MVE-VMLA-LABEL: vfms16_pred:
777
773
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
778
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
779
- ; CHECK-MVE-VMLA-NEXT: vcmp.f16 lt, q1, zr
780
- ; CHECK-MVE-VMLA-NEXT: vfms.f16 q3, q1, q2
781
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
774
+ ; CHECK-MVE-VMLA-NEXT: vpt.f16 lt, q1, zr
775
+ ; CHECK-MVE-VMLA-NEXT: vfmst.f16 q0, q1, q2
782
776
; CHECK-MVE-VMLA-NEXT: bx lr
783
777
;
784
778
; CHECK-MVE-LABEL: vfms16_pred:
@@ -926,11 +920,9 @@ define arm_aapcs_vfpcc <8 x half> @vfmar16_pred(<8 x half> %src1, <8 x half> %sr
926
920
; CHECK-MVE-VMLA-LABEL: vfmar16_pred:
927
921
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
928
922
; CHECK-MVE-VMLA-NEXT: vcvtb.f16.f32 s8, s8
929
- ; CHECK-MVE-VMLA-NEXT: vcmp.f16 lt, q1, zr
930
923
; CHECK-MVE-VMLA-NEXT: vmov.f16 r0, s8
931
- ; CHECK-MVE-VMLA-NEXT: vmov q2, q0
932
- ; CHECK-MVE-VMLA-NEXT: vfma.f16 q2, q1, r0
933
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q2, q0
924
+ ; CHECK-MVE-VMLA-NEXT: vpt.f16 lt, q1, zr
925
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f16 q0, q1, r0
934
926
; CHECK-MVE-VMLA-NEXT: bx lr
935
927
;
936
928
; CHECK-MVE-LABEL: vfmar16_pred:
@@ -1074,11 +1066,9 @@ define arm_aapcs_vfpcc <8 x half> @vfma16_pred(<8 x half> %src1, <8 x half> %src
1074
1066
; CHECK-MVE-VMLA-LABEL: vfma16_pred:
1075
1067
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1076
1068
; CHECK-MVE-VMLA-NEXT: vcvtb.f16.f32 s8, s8
1077
- ; CHECK-MVE-VMLA-NEXT: vcmp.f16 lt, q1, zr
1078
1069
; CHECK-MVE-VMLA-NEXT: vmov.f16 r0, s8
1079
- ; CHECK-MVE-VMLA-NEXT: vmov q2, q0
1080
- ; CHECK-MVE-VMLA-NEXT: vfmas.f16 q2, q1, r0
1081
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q2, q0
1070
+ ; CHECK-MVE-VMLA-NEXT: vpt.f16 lt, q1, zr
1071
+ ; CHECK-MVE-VMLA-NEXT: vfmast.f16 q0, q1, r0
1082
1072
; CHECK-MVE-VMLA-NEXT: bx lr
1083
1073
;
1084
1074
; CHECK-MVE-LABEL: vfma16_pred:
@@ -1218,10 +1208,8 @@ define arm_aapcs_vfpcc <4 x float> @vfma32_v1_pred(<4 x float> %src1, <4 x float
1218
1208
;
1219
1209
; CHECK-MVE-VMLA-LABEL: vfma32_v1_pred:
1220
1210
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1221
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
1222
- ; CHECK-MVE-VMLA-NEXT: vcmp.f32 lt, q1, zr
1223
- ; CHECK-MVE-VMLA-NEXT: vfma.f32 q3, q1, q2
1224
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
1211
+ ; CHECK-MVE-VMLA-NEXT: vpt.f32 lt, q1, zr
1212
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f32 q0, q1, q2
1225
1213
; CHECK-MVE-VMLA-NEXT: bx lr
1226
1214
;
1227
1215
; CHECK-MVE-LABEL: vfma32_v1_pred:
@@ -1290,10 +1278,8 @@ define arm_aapcs_vfpcc <4 x float> @vfma32_v2_pred(<4 x float> %src1, <4 x float
1290
1278
;
1291
1279
; CHECK-MVE-VMLA-LABEL: vfma32_v2_pred:
1292
1280
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1293
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
1294
- ; CHECK-MVE-VMLA-NEXT: vcmp.f32 lt, q1, zr
1295
- ; CHECK-MVE-VMLA-NEXT: vfma.f32 q3, q1, q2
1296
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
1281
+ ; CHECK-MVE-VMLA-NEXT: vpt.f32 lt, q1, zr
1282
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f32 q0, q1, q2
1297
1283
; CHECK-MVE-VMLA-NEXT: bx lr
1298
1284
;
1299
1285
; CHECK-MVE-LABEL: vfma32_v2_pred:
@@ -1362,10 +1348,8 @@ define arm_aapcs_vfpcc <4 x float> @vfms32_pred(<4 x float> %src1, <4 x float> %
1362
1348
;
1363
1349
; CHECK-MVE-VMLA-LABEL: vfms32_pred:
1364
1350
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1365
- ; CHECK-MVE-VMLA-NEXT: vmov q3, q0
1366
- ; CHECK-MVE-VMLA-NEXT: vcmp.f32 lt, q1, zr
1367
- ; CHECK-MVE-VMLA-NEXT: vfms.f32 q3, q1, q2
1368
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q3, q0
1351
+ ; CHECK-MVE-VMLA-NEXT: vpt.f32 lt, q1, zr
1352
+ ; CHECK-MVE-VMLA-NEXT: vfmst.f32 q0, q1, q2
1369
1353
; CHECK-MVE-VMLA-NEXT: bx lr
1370
1354
;
1371
1355
; CHECK-MVE-LABEL: vfms32_pred:
@@ -1437,10 +1421,8 @@ define arm_aapcs_vfpcc <4 x float> @vfmar32_pred(<4 x float> %src1, <4 x float>
1437
1421
; CHECK-MVE-VMLA-LABEL: vfmar32_pred:
1438
1422
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1439
1423
; CHECK-MVE-VMLA-NEXT: vmov r0, s8
1440
- ; CHECK-MVE-VMLA-NEXT: vmov q2, q0
1441
- ; CHECK-MVE-VMLA-NEXT: vcmp.f32 lt, q1, zr
1442
- ; CHECK-MVE-VMLA-NEXT: vfma.f32 q2, q1, r0
1443
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q2, q0
1424
+ ; CHECK-MVE-VMLA-NEXT: vpt.f32 lt, q1, zr
1425
+ ; CHECK-MVE-VMLA-NEXT: vfmat.f32 q0, q1, r0
1444
1426
; CHECK-MVE-VMLA-NEXT: bx lr
1445
1427
;
1446
1428
; CHECK-MVE-LABEL: vfmar32_pred:
@@ -1513,10 +1495,8 @@ define arm_aapcs_vfpcc <4 x float> @vfmas32_pred(<4 x float> %src1, <4 x float>
1513
1495
; CHECK-MVE-VMLA-LABEL: vfmas32_pred:
1514
1496
; CHECK-MVE-VMLA: @ %bb.0: @ %entry
1515
1497
; CHECK-MVE-VMLA-NEXT: vmov r0, s8
1516
- ; CHECK-MVE-VMLA-NEXT: vmov q2, q0
1517
- ; CHECK-MVE-VMLA-NEXT: vcmp.f32 lt, q1, zr
1518
- ; CHECK-MVE-VMLA-NEXT: vfmas.f32 q2, q1, r0
1519
- ; CHECK-MVE-VMLA-NEXT: vpsel q0, q2, q0
1498
+ ; CHECK-MVE-VMLA-NEXT: vpt.f32 lt, q1, zr
1499
+ ; CHECK-MVE-VMLA-NEXT: vfmast.f32 q0, q1, r0
1520
1500
; CHECK-MVE-VMLA-NEXT: bx lr
1521
1501
;
1522
1502
; CHECK-MVE-LABEL: vfmas32_pred:
0 commit comments