@@ -909,14 +909,13 @@ define void @sink_splat_fmul(float* nocapture %a, float %x) {
909
909
; CHECK-LABEL: sink_splat_fmul:
910
910
; CHECK: # %bb.0: # %entry
911
911
; CHECK-NEXT: fmv.w.x ft0, a1
912
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
913
- ; CHECK-NEXT: vfmv.v.f v25, ft0
914
912
; CHECK-NEXT: addi a1, zero, 1024
915
913
; CHECK-NEXT: .LBB14_1: # %vector.body
916
914
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
917
- ; CHECK-NEXT: vle32.v v26, (a0)
918
- ; CHECK-NEXT: vfmul.vv v26, v26, v25
919
- ; CHECK-NEXT: vse32.v v26, (a0)
915
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
916
+ ; CHECK-NEXT: vle32.v v25, (a0)
917
+ ; CHECK-NEXT: vfmul.vf v25, v25, ft0
918
+ ; CHECK-NEXT: vse32.v v25, (a0)
920
919
; CHECK-NEXT: addi a1, a1, -4
921
920
; CHECK-NEXT: addi a0, a0, 16
922
921
; CHECK-NEXT: bnez a1, .LBB14_1
@@ -947,14 +946,13 @@ define void @sink_splat_fdiv(float* nocapture %a, float %x) {
947
946
; CHECK-LABEL: sink_splat_fdiv:
948
947
; CHECK: # %bb.0: # %entry
949
948
; CHECK-NEXT: fmv.w.x ft0, a1
950
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
951
- ; CHECK-NEXT: vfmv.v.f v25, ft0
952
949
; CHECK-NEXT: addi a1, zero, 1024
953
950
; CHECK-NEXT: .LBB15_1: # %vector.body
954
951
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
955
- ; CHECK-NEXT: vle32.v v26, (a0)
956
- ; CHECK-NEXT: vfdiv.vv v26, v26, v25
957
- ; CHECK-NEXT: vse32.v v26, (a0)
952
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
953
+ ; CHECK-NEXT: vle32.v v25, (a0)
954
+ ; CHECK-NEXT: vfdiv.vf v25, v25, ft0
955
+ ; CHECK-NEXT: vse32.v v25, (a0)
958
956
; CHECK-NEXT: addi a1, a1, -4
959
957
; CHECK-NEXT: addi a0, a0, 16
960
958
; CHECK-NEXT: bnez a1, .LBB15_1
@@ -985,14 +983,13 @@ define void @sink_splat_frdiv(float* nocapture %a, float %x) {
985
983
; CHECK-LABEL: sink_splat_frdiv:
986
984
; CHECK: # %bb.0: # %entry
987
985
; CHECK-NEXT: fmv.w.x ft0, a1
988
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
989
- ; CHECK-NEXT: vfmv.v.f v25, ft0
990
986
; CHECK-NEXT: addi a1, zero, 1024
991
987
; CHECK-NEXT: .LBB16_1: # %vector.body
992
988
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
993
- ; CHECK-NEXT: vle32.v v26, (a0)
994
- ; CHECK-NEXT: vfdiv.vv v26, v25, v26
995
- ; CHECK-NEXT: vse32.v v26, (a0)
989
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
990
+ ; CHECK-NEXT: vle32.v v25, (a0)
991
+ ; CHECK-NEXT: vfrdiv.vf v25, v25, ft0
992
+ ; CHECK-NEXT: vse32.v v25, (a0)
996
993
; CHECK-NEXT: addi a1, a1, -4
997
994
; CHECK-NEXT: addi a0, a0, 16
998
995
; CHECK-NEXT: bnez a1, .LBB16_1
@@ -1023,14 +1020,13 @@ define void @sink_splat_fadd(float* nocapture %a, float %x) {
1023
1020
; CHECK-LABEL: sink_splat_fadd:
1024
1021
; CHECK: # %bb.0: # %entry
1025
1022
; CHECK-NEXT: fmv.w.x ft0, a1
1026
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1027
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1028
1023
; CHECK-NEXT: addi a1, zero, 1024
1029
1024
; CHECK-NEXT: .LBB17_1: # %vector.body
1030
1025
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1031
- ; CHECK-NEXT: vle32.v v26, (a0)
1032
- ; CHECK-NEXT: vfadd.vv v26, v26, v25
1033
- ; CHECK-NEXT: vse32.v v26, (a0)
1026
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1027
+ ; CHECK-NEXT: vle32.v v25, (a0)
1028
+ ; CHECK-NEXT: vfadd.vf v25, v25, ft0
1029
+ ; CHECK-NEXT: vse32.v v25, (a0)
1034
1030
; CHECK-NEXT: addi a1, a1, -4
1035
1031
; CHECK-NEXT: addi a0, a0, 16
1036
1032
; CHECK-NEXT: bnez a1, .LBB17_1
@@ -1061,14 +1057,13 @@ define void @sink_splat_fsub(float* nocapture %a, float %x) {
1061
1057
; CHECK-LABEL: sink_splat_fsub:
1062
1058
; CHECK: # %bb.0: # %entry
1063
1059
; CHECK-NEXT: fmv.w.x ft0, a1
1064
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1065
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1066
1060
; CHECK-NEXT: addi a1, zero, 1024
1067
1061
; CHECK-NEXT: .LBB18_1: # %vector.body
1068
1062
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1069
- ; CHECK-NEXT: vle32.v v26, (a0)
1070
- ; CHECK-NEXT: vfsub.vv v26, v26, v25
1071
- ; CHECK-NEXT: vse32.v v26, (a0)
1063
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1064
+ ; CHECK-NEXT: vle32.v v25, (a0)
1065
+ ; CHECK-NEXT: vfsub.vf v25, v25, ft0
1066
+ ; CHECK-NEXT: vse32.v v25, (a0)
1072
1067
; CHECK-NEXT: addi a1, a1, -4
1073
1068
; CHECK-NEXT: addi a0, a0, 16
1074
1069
; CHECK-NEXT: bnez a1, .LBB18_1
@@ -1099,14 +1094,13 @@ define void @sink_splat_frsub(float* nocapture %a, float %x) {
1099
1094
; CHECK-LABEL: sink_splat_frsub:
1100
1095
; CHECK: # %bb.0: # %entry
1101
1096
; CHECK-NEXT: fmv.w.x ft0, a1
1102
- ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1103
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1104
1097
; CHECK-NEXT: addi a1, zero, 1024
1105
1098
; CHECK-NEXT: .LBB19_1: # %vector.body
1106
1099
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1107
- ; CHECK-NEXT: vle32.v v26, (a0)
1108
- ; CHECK-NEXT: vfsub.vv v26, v25, v26
1109
- ; CHECK-NEXT: vse32.v v26, (a0)
1100
+ ; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, mu
1101
+ ; CHECK-NEXT: vle32.v v25, (a0)
1102
+ ; CHECK-NEXT: vfrsub.vf v25, v25, ft0
1103
+ ; CHECK-NEXT: vse32.v v25, (a0)
1110
1104
; CHECK-NEXT: addi a1, a1, -4
1111
1105
; CHECK-NEXT: addi a0, a0, 16
1112
1106
; CHECK-NEXT: bnez a1, .LBB19_1
@@ -1136,8 +1130,8 @@ for.cond.cleanup: ; preds = %vector.body
1136
1130
define void @sink_splat_fmul_scalable (float * nocapture %a , float %x ) {
1137
1131
; CHECK-LABEL: sink_splat_fmul_scalable:
1138
1132
; CHECK: # %bb.0: # %entry
1139
- ; CHECK-NEXT: csrr a2 , vlenb
1140
- ; CHECK-NEXT: srli a3, a2 , 2
1133
+ ; CHECK-NEXT: csrr a7 , vlenb
1134
+ ; CHECK-NEXT: srli a3, a7 , 2
1141
1135
; CHECK-NEXT: addi a4, zero, 1024
1142
1136
; CHECK-NEXT: fmv.w.x ft0, a1
1143
1137
; CHECK-NEXT: bgeu a4, a3, .LBB20_2
@@ -1148,16 +1142,15 @@ define void @sink_splat_fmul_scalable(float* nocapture %a, float %x) {
1148
1142
; CHECK-NEXT: mv a5, zero
1149
1143
; CHECK-NEXT: remu a6, a4, a3
1150
1144
; CHECK-NEXT: sub a1, a4, a6
1151
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1152
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1153
1145
; CHECK-NEXT: mv a4, a0
1154
1146
; CHECK-NEXT: .LBB20_3: # %vector.body
1155
1147
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1156
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1157
- ; CHECK-NEXT: vfmul.vv v26, v26, v25
1158
- ; CHECK-NEXT: vs1r.v v26, (a4)
1148
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1149
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1150
+ ; CHECK-NEXT: vfmul.vf v25, v25, ft0
1151
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1159
1152
; CHECK-NEXT: add a5, a5, a3
1160
- ; CHECK-NEXT: add a4, a4, a2
1153
+ ; CHECK-NEXT: add a4, a4, a7
1161
1154
; CHECK-NEXT: bne a5, a1, .LBB20_3
1162
1155
; CHECK-NEXT: # %bb.4: # %middle.block
1163
1156
; CHECK-NEXT: beqz a6, .LBB20_7
@@ -1230,8 +1223,8 @@ for.body: ; preds = %for.body.preheader,
1230
1223
define void @sink_splat_fdiv_scalable (float * nocapture %a , float %x ) {
1231
1224
; CHECK-LABEL: sink_splat_fdiv_scalable:
1232
1225
; CHECK: # %bb.0: # %entry
1233
- ; CHECK-NEXT: csrr a2 , vlenb
1234
- ; CHECK-NEXT: srli a3, a2 , 2
1226
+ ; CHECK-NEXT: csrr a7 , vlenb
1227
+ ; CHECK-NEXT: srli a3, a7 , 2
1235
1228
; CHECK-NEXT: addi a4, zero, 1024
1236
1229
; CHECK-NEXT: fmv.w.x ft0, a1
1237
1230
; CHECK-NEXT: bgeu a4, a3, .LBB21_2
@@ -1242,16 +1235,15 @@ define void @sink_splat_fdiv_scalable(float* nocapture %a, float %x) {
1242
1235
; CHECK-NEXT: mv a5, zero
1243
1236
; CHECK-NEXT: remu a6, a4, a3
1244
1237
; CHECK-NEXT: sub a1, a4, a6
1245
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1246
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1247
1238
; CHECK-NEXT: mv a4, a0
1248
1239
; CHECK-NEXT: .LBB21_3: # %vector.body
1249
1240
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1250
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1251
- ; CHECK-NEXT: vfdiv.vv v26, v26, v25
1252
- ; CHECK-NEXT: vs1r.v v26, (a4)
1241
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1242
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1243
+ ; CHECK-NEXT: vfdiv.vf v25, v25, ft0
1244
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1253
1245
; CHECK-NEXT: add a5, a5, a3
1254
- ; CHECK-NEXT: add a4, a4, a2
1246
+ ; CHECK-NEXT: add a4, a4, a7
1255
1247
; CHECK-NEXT: bne a5, a1, .LBB21_3
1256
1248
; CHECK-NEXT: # %bb.4: # %middle.block
1257
1249
; CHECK-NEXT: beqz a6, .LBB21_7
@@ -1324,8 +1316,8 @@ for.body: ; preds = %for.body.preheader,
1324
1316
define void @sink_splat_frdiv_scalable (float * nocapture %a , float %x ) {
1325
1317
; CHECK-LABEL: sink_splat_frdiv_scalable:
1326
1318
; CHECK: # %bb.0: # %entry
1327
- ; CHECK-NEXT: csrr a2 , vlenb
1328
- ; CHECK-NEXT: srli a3, a2 , 2
1319
+ ; CHECK-NEXT: csrr a7 , vlenb
1320
+ ; CHECK-NEXT: srli a3, a7 , 2
1329
1321
; CHECK-NEXT: addi a4, zero, 1024
1330
1322
; CHECK-NEXT: fmv.w.x ft0, a1
1331
1323
; CHECK-NEXT: bgeu a4, a3, .LBB22_2
@@ -1336,16 +1328,15 @@ define void @sink_splat_frdiv_scalable(float* nocapture %a, float %x) {
1336
1328
; CHECK-NEXT: mv a5, zero
1337
1329
; CHECK-NEXT: remu a6, a4, a3
1338
1330
; CHECK-NEXT: sub a1, a4, a6
1339
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1340
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1341
1331
; CHECK-NEXT: mv a4, a0
1342
1332
; CHECK-NEXT: .LBB22_3: # %vector.body
1343
1333
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1344
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1345
- ; CHECK-NEXT: vfdiv.vv v26, v25, v26
1346
- ; CHECK-NEXT: vs1r.v v26, (a4)
1334
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1335
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1336
+ ; CHECK-NEXT: vfrdiv.vf v25, v25, ft0
1337
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1347
1338
; CHECK-NEXT: add a5, a5, a3
1348
- ; CHECK-NEXT: add a4, a4, a2
1339
+ ; CHECK-NEXT: add a4, a4, a7
1349
1340
; CHECK-NEXT: bne a5, a1, .LBB22_3
1350
1341
; CHECK-NEXT: # %bb.4: # %middle.block
1351
1342
; CHECK-NEXT: beqz a6, .LBB22_7
@@ -1418,8 +1409,8 @@ for.body: ; preds = %for.body.preheader,
1418
1409
define void @sink_splat_fadd_scalable (float * nocapture %a , float %x ) {
1419
1410
; CHECK-LABEL: sink_splat_fadd_scalable:
1420
1411
; CHECK: # %bb.0: # %entry
1421
- ; CHECK-NEXT: csrr a2 , vlenb
1422
- ; CHECK-NEXT: srli a3, a2 , 2
1412
+ ; CHECK-NEXT: csrr a7 , vlenb
1413
+ ; CHECK-NEXT: srli a3, a7 , 2
1423
1414
; CHECK-NEXT: addi a4, zero, 1024
1424
1415
; CHECK-NEXT: fmv.w.x ft0, a1
1425
1416
; CHECK-NEXT: bgeu a4, a3, .LBB23_2
@@ -1430,16 +1421,15 @@ define void @sink_splat_fadd_scalable(float* nocapture %a, float %x) {
1430
1421
; CHECK-NEXT: mv a5, zero
1431
1422
; CHECK-NEXT: remu a6, a4, a3
1432
1423
; CHECK-NEXT: sub a1, a4, a6
1433
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1434
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1435
1424
; CHECK-NEXT: mv a4, a0
1436
1425
; CHECK-NEXT: .LBB23_3: # %vector.body
1437
1426
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1438
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1439
- ; CHECK-NEXT: vfadd.vv v26, v26, v25
1440
- ; CHECK-NEXT: vs1r.v v26, (a4)
1427
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1428
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1429
+ ; CHECK-NEXT: vfadd.vf v25, v25, ft0
1430
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1441
1431
; CHECK-NEXT: add a5, a5, a3
1442
- ; CHECK-NEXT: add a4, a4, a2
1432
+ ; CHECK-NEXT: add a4, a4, a7
1443
1433
; CHECK-NEXT: bne a5, a1, .LBB23_3
1444
1434
; CHECK-NEXT: # %bb.4: # %middle.block
1445
1435
; CHECK-NEXT: beqz a6, .LBB23_7
@@ -1512,8 +1502,8 @@ for.body: ; preds = %for.body.preheader,
1512
1502
define void @sink_splat_fsub_scalable (float * nocapture %a , float %x ) {
1513
1503
; CHECK-LABEL: sink_splat_fsub_scalable:
1514
1504
; CHECK: # %bb.0: # %entry
1515
- ; CHECK-NEXT: csrr a2 , vlenb
1516
- ; CHECK-NEXT: srli a3, a2 , 2
1505
+ ; CHECK-NEXT: csrr a7 , vlenb
1506
+ ; CHECK-NEXT: srli a3, a7 , 2
1517
1507
; CHECK-NEXT: addi a4, zero, 1024
1518
1508
; CHECK-NEXT: fmv.w.x ft0, a1
1519
1509
; CHECK-NEXT: bgeu a4, a3, .LBB24_2
@@ -1524,16 +1514,15 @@ define void @sink_splat_fsub_scalable(float* nocapture %a, float %x) {
1524
1514
; CHECK-NEXT: mv a5, zero
1525
1515
; CHECK-NEXT: remu a6, a4, a3
1526
1516
; CHECK-NEXT: sub a1, a4, a6
1527
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1528
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1529
1517
; CHECK-NEXT: mv a4, a0
1530
1518
; CHECK-NEXT: .LBB24_3: # %vector.body
1531
1519
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1532
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1533
- ; CHECK-NEXT: vfsub.vv v26, v26, v25
1534
- ; CHECK-NEXT: vs1r.v v26, (a4)
1520
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1521
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1522
+ ; CHECK-NEXT: vfsub.vf v25, v25, ft0
1523
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1535
1524
; CHECK-NEXT: add a5, a5, a3
1536
- ; CHECK-NEXT: add a4, a4, a2
1525
+ ; CHECK-NEXT: add a4, a4, a7
1537
1526
; CHECK-NEXT: bne a5, a1, .LBB24_3
1538
1527
; CHECK-NEXT: # %bb.4: # %middle.block
1539
1528
; CHECK-NEXT: beqz a6, .LBB24_7
@@ -1606,8 +1595,8 @@ for.body: ; preds = %for.body.preheader,
1606
1595
define void @sink_splat_frsub_scalable (float * nocapture %a , float %x ) {
1607
1596
; CHECK-LABEL: sink_splat_frsub_scalable:
1608
1597
; CHECK: # %bb.0: # %entry
1609
- ; CHECK-NEXT: csrr a2 , vlenb
1610
- ; CHECK-NEXT: srli a3, a2 , 2
1598
+ ; CHECK-NEXT: csrr a7 , vlenb
1599
+ ; CHECK-NEXT: srli a3, a7 , 2
1611
1600
; CHECK-NEXT: addi a4, zero, 1024
1612
1601
; CHECK-NEXT: fmv.w.x ft0, a1
1613
1602
; CHECK-NEXT: bgeu a4, a3, .LBB25_2
@@ -1618,16 +1607,15 @@ define void @sink_splat_frsub_scalable(float* nocapture %a, float %x) {
1618
1607
; CHECK-NEXT: mv a5, zero
1619
1608
; CHECK-NEXT: remu a6, a4, a3
1620
1609
; CHECK-NEXT: sub a1, a4, a6
1621
- ; CHECK-NEXT: vsetvli a4, zero, e32, m1, ta, mu
1622
- ; CHECK-NEXT: vfmv.v.f v25, ft0
1623
1610
; CHECK-NEXT: mv a4, a0
1624
1611
; CHECK-NEXT: .LBB25_3: # %vector.body
1625
1612
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
1626
- ; CHECK-NEXT: vl1re32.v v26, (a4)
1627
- ; CHECK-NEXT: vfsub.vv v26, v25, v26
1628
- ; CHECK-NEXT: vs1r.v v26, (a4)
1613
+ ; CHECK-NEXT: vl1re32.v v25, (a4)
1614
+ ; CHECK-NEXT: vsetvli a2, zero, e32, m1, ta, mu
1615
+ ; CHECK-NEXT: vfrsub.vf v25, v25, ft0
1616
+ ; CHECK-NEXT: vs1r.v v25, (a4)
1629
1617
; CHECK-NEXT: add a5, a5, a3
1630
- ; CHECK-NEXT: add a4, a4, a2
1618
+ ; CHECK-NEXT: add a4, a4, a7
1631
1619
; CHECK-NEXT: bne a5, a1, .LBB25_3
1632
1620
; CHECK-NEXT: # %bb.4: # %middle.block
1633
1621
; CHECK-NEXT: beqz a6, .LBB25_7
0 commit comments