@@ -606,7 +606,7 @@ multiclass VPatReductionVL<SDNode vop, string instruction_name, bit is_float> {
606
606
// Patterns.
607
607
//===----------------------------------------------------------------------===//
608
608
609
- let Predicates = [HasStdExtV ] in {
609
+ let Predicates = [HasVInstructions ] in {
610
610
611
611
// 7.4. Vector Unit-Stride Instructions
612
612
foreach vti = AllVectors in {
@@ -925,10 +925,10 @@ defm : VPatBinaryVL_VV_VX_VI<riscv_uaddsat_vl, "PseudoVSADDU">;
925
925
defm : VPatBinaryVL_VV_VX<riscv_ssubsat_vl, "PseudoVSSUB">;
926
926
defm : VPatBinaryVL_VV_VX<riscv_usubsat_vl, "PseudoVSSUBU">;
927
927
928
- } // Predicates = [HasStdExtV ]
928
+ } // Predicates = [HasVInstructions ]
929
929
930
930
// 15.1. Vector Single-Width Integer Reduction Instructions
931
- let Predicates = [HasStdExtV ] in {
931
+ let Predicates = [HasVInstructions ] in {
932
932
defm : VPatReductionVL<rvv_vecreduce_ADD_vl, "PseudoVREDSUM", /*is_float*/0>;
933
933
defm : VPatReductionVL<rvv_vecreduce_UMAX_vl, "PseudoVREDMAXU", /*is_float*/0>;
934
934
defm : VPatReductionVL<rvv_vecreduce_SMAX_vl, "PseudoVREDMAX", /*is_float*/0>;
@@ -937,17 +937,17 @@ defm : VPatReductionVL<rvv_vecreduce_SMIN_vl, "PseudoVREDMIN", /*is_float*/0>;
937
937
defm : VPatReductionVL<rvv_vecreduce_AND_vl, "PseudoVREDAND", /*is_float*/0>;
938
938
defm : VPatReductionVL<rvv_vecreduce_OR_vl, "PseudoVREDOR", /*is_float*/0>;
939
939
defm : VPatReductionVL<rvv_vecreduce_XOR_vl, "PseudoVREDXOR", /*is_float*/0>;
940
- } // Predicates = [HasStdExtV ]
940
+ } // Predicates = [HasVInstructions ]
941
941
942
942
// 15.3. Vector Single-Width Floating-Point Reduction Instructions
943
- let Predicates = [HasStdExtV, HasStdExtF ] in {
943
+ let Predicates = [HasVInstructionsAnyF ] in {
944
944
defm : VPatReductionVL<rvv_vecreduce_SEQ_FADD_vl, "PseudoVFREDOSUM", /*is_float*/1>;
945
945
defm : VPatReductionVL<rvv_vecreduce_FADD_vl, "PseudoVFREDUSUM", /*is_float*/1>;
946
946
defm : VPatReductionVL<rvv_vecreduce_FMIN_vl, "PseudoVFREDMIN", /*is_float*/1>;
947
947
defm : VPatReductionVL<rvv_vecreduce_FMAX_vl, "PseudoVFREDMAX", /*is_float*/1>;
948
- } // Predicates = [HasStdExtV, HasStdExtF ]
948
+ } // Predicates = [HasVInstructionsAnyF ]
949
949
950
- let Predicates = [HasStdExtV, HasStdExtF ] in {
950
+ let Predicates = [HasVInstructionsAnyF ] in {
951
951
952
952
// 14.2. Vector Single-Width Floating-Point Add/Subtract Instructions
953
953
defm : VPatBinaryFPVL_VV_VF<riscv_fadd_vl, "PseudoVFADD">;
@@ -1209,9 +1209,9 @@ foreach fvti = AllFloatVectors in {
1209
1209
}
1210
1210
}
1211
1211
1212
- } // Predicates = [HasStdExtV, HasStdExtF ]
1212
+ } // Predicates = [HasVInstructionsAnyF ]
1213
1213
1214
- let Predicates = [HasStdExtV ] in {
1214
+ let Predicates = [HasVInstructions ] in {
1215
1215
1216
1216
foreach mti = AllMasks in {
1217
1217
// 16.1 Vector Mask-Register Logical Instructions
@@ -1279,9 +1279,9 @@ foreach mti = AllMasks in {
1279
1279
VR:$rs2, (mti.Mask V0), GPR:$vl, mti.Log2SEW)>;
1280
1280
}
1281
1281
1282
- } // Predicates = [HasStdExtV ]
1282
+ } // Predicates = [HasVInstructions ]
1283
1283
1284
- let Predicates = [HasStdExtV ] in {
1284
+ let Predicates = [HasVInstructions ] in {
1285
1285
// 17.1. Integer Scalar Move Instructions
1286
1286
// 17.4. Vector Register Gather Instruction
1287
1287
foreach vti = AllIntegerVectors in {
@@ -1361,9 +1361,9 @@ foreach vti = AllIntegerVectors in {
1361
1361
}
1362
1362
}
1363
1363
1364
- } // Predicates = [HasStdExtV ]
1364
+ } // Predicates = [HasVInstructions ]
1365
1365
1366
- let Predicates = [HasStdExtV, HasStdExtF ] in {
1366
+ let Predicates = [HasVInstructionsAnyF ] in {
1367
1367
1368
1368
// 17.2. Floating-Point Scalar Move Instructions
1369
1369
foreach vti = AllFloatVectors in {
@@ -1443,7 +1443,7 @@ foreach vti = AllFloatVectors in {
1443
1443
}
1444
1444
}
1445
1445
1446
- } // Predicates = [HasStdExtV, HasStdExtF ]
1446
+ } // Predicates = [HasVInstructionsAnyF ]
1447
1447
1448
1448
//===----------------------------------------------------------------------===//
1449
1449
// Miscellaneous RISCVISD SDNodes
@@ -1467,7 +1467,7 @@ def riscv_slide1up_vl : SDNode<"RISCVISD::VSLIDE1UP_VL", SDTRVVSlide1, []>;
1467
1467
def riscv_slidedown_vl : SDNode<"RISCVISD::VSLIDEDOWN_VL", SDTRVVSlide, []>;
1468
1468
def riscv_slide1down_vl : SDNode<"RISCVISD::VSLIDE1DOWN_VL", SDTRVVSlide1, []>;
1469
1469
1470
- let Predicates = [HasStdExtV ] in {
1470
+ let Predicates = [HasVInstructions ] in {
1471
1471
1472
1472
foreach vti = AllIntegerVectors in {
1473
1473
def : Pat<(vti.Vector (riscv_vid_vl (vti.Mask true_mask),
@@ -1520,4 +1520,4 @@ foreach vti = !listconcat(AllIntegerVectors, AllFloatVectors) in {
1520
1520
GPR:$vl, vti.Log2SEW)>;
1521
1521
}
1522
1522
1523
- } // Predicates = [HasStdExtV ]
1523
+ } // Predicates = [HasVInstructions ]
0 commit comments