[RISCV] Merge AllBFloatVectors into AllFloatVectors. NFC.
This commit is contained in:
@@ -351,10 +351,13 @@ defset list<VTypeInfo> AllVectors = {
|
||||
def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, V_MF4, f16, FPR16>;
|
||||
def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, V_MF2, f16, FPR16>;
|
||||
def VF32MF2: VTypeInfo<vfloat32mf2_t, vbool64_t, 32, V_MF2, f32, FPR32>;
|
||||
def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
|
||||
def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
|
||||
}
|
||||
def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, V_M1, f16, FPR16>;
|
||||
def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, V_M1, f32, FPR32>;
|
||||
def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, V_M1, f64, FPR64>;
|
||||
def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
|
||||
}
|
||||
|
||||
defset list<GroupVTypeInfo> GroupFloatVectors = {
|
||||
@@ -378,19 +381,7 @@ defset list<VTypeInfo> AllVectors = {
|
||||
V_M4, f64, FPR64>;
|
||||
def VF64M8: GroupVTypeInfo<vfloat64m8_t, vfloat64m1_t, vbool8_t, 64,
|
||||
V_M8, f64, FPR64>;
|
||||
}
|
||||
}
|
||||
|
||||
defset list<VTypeInfo> AllBFloatVectors = {
|
||||
defset list<VTypeInfo> NoGroupBFloatVectors = {
|
||||
defset list<VTypeInfo> FractionalGroupBFloatVectors = {
|
||||
def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
|
||||
def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
|
||||
}
|
||||
def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
|
||||
}
|
||||
|
||||
defset list<GroupVTypeInfo> GroupBFloatVectors = {
|
||||
def VBF16M2: GroupVTypeInfo<vbfloat16m2_t, vbfloat16m1_t, vbool8_t, 16,
|
||||
V_M2, bf16, FPR16>;
|
||||
def VBF16M4: GroupVTypeInfo<vbfloat16m4_t, vbfloat16m1_t, vbool4_t, 16,
|
||||
@@ -7227,14 +7218,6 @@ foreach vti = AllFloatVectors in {
|
||||
vti.RegClass, vti.ScalarRegClass>;
|
||||
}
|
||||
|
||||
foreach vti = AllBFloatVectors in
|
||||
let Predicates = [HasVInstructionsBF16Minimal] in
|
||||
defm : VPatBinaryCarryInTAIL<"int_riscv_vmerge", "PseudoVMERGE", "VVM",
|
||||
vti.Vector,
|
||||
vti.Vector, vti.Vector, vti.Mask,
|
||||
vti.Log2SEW, vti.LMul, vti.RegClass,
|
||||
vti.RegClass, vti.RegClass>;
|
||||
|
||||
foreach fvti = AllFloatVectors in {
|
||||
defvar instr = !cast<Instruction>("PseudoVMERGE_VIM_"#fvti.LMul.MX);
|
||||
let Predicates = GetVTypePredicates<fvti>.Predicates in
|
||||
@@ -7418,9 +7401,6 @@ defm : VPatTernaryV_VX_VI<"int_riscv_vslidedown", "PseudoVSLIDEDOWN", AllFloatVe
|
||||
defm : VPatBinaryV_VX<"int_riscv_vfslide1up", "PseudoVFSLIDE1UP", AllFloatVectors>;
|
||||
defm : VPatBinaryV_VX<"int_riscv_vfslide1down", "PseudoVFSLIDE1DOWN", AllFloatVectors>;
|
||||
|
||||
defm : VPatTernaryV_VX_VI<"int_riscv_vslideup", "PseudoVSLIDEUP", AllBFloatVectors, uimm5>;
|
||||
defm : VPatTernaryV_VX_VI<"int_riscv_vslidedown", "PseudoVSLIDEDOWN", AllBFloatVectors, uimm5>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// 16.4. Vector Register Gather Instructions
|
||||
//===----------------------------------------------------------------------===//
|
||||
@@ -7431,18 +7411,13 @@ defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
|
||||
|
||||
defm : VPatBinaryV_VV_VX_VI_INT<"int_riscv_vrgather", "PseudoVRGATHER",
|
||||
AllFloatVectors, uimm5>;
|
||||
defm : VPatBinaryV_VV_VX_VI_INT<"int_riscv_vrgather", "PseudoVRGATHER",
|
||||
AllBFloatVectors, uimm5>;
|
||||
defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
|
||||
eew=16, vtilist=AllFloatVectors>;
|
||||
defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
|
||||
eew=16, vtilist=AllBFloatVectors>;
|
||||
//===----------------------------------------------------------------------===//
|
||||
// 16.5. Vector Compress Instruction
|
||||
//===----------------------------------------------------------------------===//
|
||||
defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllIntegerVectors>;
|
||||
defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllFloatVectors>;
|
||||
defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllBFloatVectors>;
|
||||
|
||||
// Include the non-intrinsic ISel patterns
|
||||
include "RISCVInstrInfoVVLPatterns.td"
|
||||
|
||||
@@ -1390,7 +1390,7 @@ defm : VPatFPSetCCSDNode_VV_VF_FV<SETOLE, "PseudoVMFLE", "PseudoVMFGE">;
|
||||
// Floating-point vselects:
|
||||
// 11.15. Vector Integer Merge Instructions
|
||||
// 13.15. Vector Floating-Point Merge Instruction
|
||||
foreach fvti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
|
||||
foreach fvti = AllFloatVectors in {
|
||||
defvar ivti = GetIntVTypeInfo<fvti>.Vti;
|
||||
let Predicates = GetVTypePredicates<ivti>.Predicates in {
|
||||
def : Pat<(fvti.Vector (vselect (fvti.Mask VMV0:$vm), fvti.RegClass:$rs1,
|
||||
|
||||
@@ -2580,7 +2580,7 @@ foreach vti = AllFloatVectors in {
|
||||
}
|
||||
}
|
||||
|
||||
foreach fvti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
|
||||
foreach fvti = AllFloatVectors in {
|
||||
// Floating-point vselects:
|
||||
// 11.15. Vector Integer Merge Instructions
|
||||
// 13.15. Vector Floating-Point Merge Instruction
|
||||
@@ -2630,7 +2630,7 @@ foreach fvti = AllFloatVectors in {
|
||||
}
|
||||
}
|
||||
|
||||
foreach fvti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
|
||||
foreach fvti = AllFloatVectors in {
|
||||
defvar ivti = GetIntVTypeInfo<fvti>.Vti;
|
||||
let Predicates = GetVTypePredicates<ivti>.Predicates in {
|
||||
// 13.16. Vector Floating-Point Move Instruction
|
||||
@@ -2954,7 +2954,7 @@ foreach vti = NoGroupFloatVectors in {
|
||||
}
|
||||
}
|
||||
|
||||
foreach vti = !listconcat(AllFloatVectors, AllBFloatVectors) in {
|
||||
foreach vti = AllFloatVectors in {
|
||||
defvar ivti = GetIntVTypeInfo<vti>.Vti;
|
||||
let Predicates = GetVTypePredicates<ivti>.Predicates in {
|
||||
def : Pat<(vti.Vector
|
||||
|
||||
Reference in New Issue
Block a user