[llvm] f83d5d2 - [RISCV] Remove vfmerge.vf patterns with bf16 types.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 13 22:18:25 PDT 2024
Author: Craig Topper
Date: 2024-06-13T22:17:18-07:00
New Revision: f83d5d293dced17de175ad69de6b81503716d3ce
URL: https://github.com/llvm/llvm-project/commit/f83d5d293dced17de175ad69de6b81503716d3ce
DIFF: https://github.com/llvm/llvm-project/commit/f83d5d293dced17de175ad69de6b81503716d3ce.diff
LOG: [RISCV] Remove vfmerge.vf patterns with bf16 types.
These patterns are no longer used because we don't generate bf16
to vector splats except for constants that can be handled with
vmerge.vi.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
index a206974e53e51..45a57d1170814 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
@@ -382,17 +382,6 @@ class GetIntVTypeInfo<VTypeInfo vti> {
!cast<string>(vti))));
}
-// This functor is used to obtain the fp vector type that has the same SEW and
-// multiplier as the input parameter type.
-class GetFpVTypeInfo<VTypeInfo vti> {
- // Equivalent integer vector type. Eg.
- // VF16M1 → VF16M1 (identity)
- // VBF16M1 → VF16M1
- VTypeInfo Vti = !cast<VTypeInfo>(!subst("VBF", "VF",
- !subst("VI", "VF",
- !cast<string>(vti))));
-}
-
class MTypeInfo<ValueType Mas, LMULInfo M, string Bx> {
ValueType Mask = Mas;
// {SEW, VLMul} values set a valid VType to deal with this mask type.
@@ -769,11 +758,6 @@ class GetVTypePredicates<VTypeInfo vti> {
true : [HasVInstructions]);
}
-class GetVTypeScalarPredicates<VTypeInfo vti> {
- list<Predicate> Predicates = !cond(!eq(vti.Scalar, bf16) : [HasStdExtZfbfmin],
- true : []);
-}
-
class VPseudoUSLoadNoMask<VReg RetClass,
int EEW> :
Pseudo<(outs RetClass:$rd),
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
index 9042fe610a39f..3489c62b2c5c1 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
@@ -1412,9 +1412,10 @@ foreach fvti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
fvti.RegClass:$rs2, 0, (fvti.Mask V0), fvti.AVL, fvti.Log2SEW)>;
}
+}
- let Predicates = !listconcat(GetVTypePredicates<GetFpVTypeInfo<fvti>.Vti>.Predicates,
- GetVTypeScalarPredicates<fvti>.Predicates) in
+foreach fvti = AllFloatVectors in {
+ let Predicates = GetVTypePredicates<fvti>.Predicates in
def : Pat<(fvti.Vector (vselect (fvti.Mask V0),
(SplatFPOp fvti.ScalarRegClass:$rs1),
fvti.RegClass:$rs2)),
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
index 440b8963dfe3f..372f2c5bbf9f1 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
@@ -2638,9 +2638,10 @@ foreach fvti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
fvti.RegClass:$merge, fvti.RegClass:$rs2, 0, (fvti.Mask V0),
GPR:$vl, fvti.Log2SEW)>;
}
+}
- let Predicates = !listconcat(GetVTypePredicates<GetFpVTypeInfo<fvti>.Vti>.Predicates,
- GetVTypeScalarPredicates<fvti>.Predicates) in {
+foreach fvti = AllFloatVectors in {
+ let Predicates = GetVTypePredicates<fvti>.Predicates in {
def : Pat<(fvti.Vector (riscv_vmerge_vl (fvti.Mask V0),
(SplatFPOp fvti.ScalarRegClass:$rs1),
fvti.RegClass:$rs2,
More information about the llvm-commits
mailing list