@@ -351,10 +351,13 @@ defset list<VTypeInfo> AllVectors = {
351
351
def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, V_MF4, f16, FPR16>;
352
352
def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, V_MF2, f16, FPR16>;
353
353
def VF32MF2: VTypeInfo<vfloat32mf2_t, vbool64_t, 32, V_MF2, f32, FPR32>;
354
+ def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
355
+ def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
354
356
}
355
357
def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, V_M1, f16, FPR16>;
356
358
def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, V_M1, f32, FPR32>;
357
359
def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, V_M1, f64, FPR64>;
360
+ def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
358
361
}
359
362
360
363
defset list<GroupVTypeInfo> GroupFloatVectors = {
@@ -378,19 +381,7 @@ defset list<VTypeInfo> AllVectors = {
378
381
V_M4, f64, FPR64>;
379
382
def VF64M8: GroupVTypeInfo<vfloat64m8_t, vfloat64m1_t, vbool8_t, 64,
380
383
V_M8, f64, FPR64>;
381
- }
382
- }
383
384
384
- defset list<VTypeInfo> AllBFloatVectors = {
385
- defset list<VTypeInfo> NoGroupBFloatVectors = {
386
- defset list<VTypeInfo> FractionalGroupBFloatVectors = {
387
- def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
388
- def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
389
- }
390
- def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
391
- }
392
-
393
- defset list<GroupVTypeInfo> GroupBFloatVectors = {
394
385
def VBF16M2: GroupVTypeInfo<vbfloat16m2_t, vbfloat16m1_t, vbool8_t, 16,
395
386
V_M2, bf16, FPR16>;
396
387
def VBF16M4: GroupVTypeInfo<vbfloat16m4_t, vbfloat16m1_t, vbool4_t, 16,
@@ -7227,14 +7218,6 @@ foreach vti = AllFloatVectors in {
7227
7218
vti.RegClass, vti.ScalarRegClass>;
7228
7219
}
7229
7220
7230
- foreach vti = AllBFloatVectors in
7231
- let Predicates = [HasVInstructionsBF16Minimal] in
7232
- defm : VPatBinaryCarryInTAIL<"int_riscv_vmerge", "PseudoVMERGE", "VVM",
7233
- vti.Vector,
7234
- vti.Vector, vti.Vector, vti.Mask,
7235
- vti.Log2SEW, vti.LMul, vti.RegClass,
7236
- vti.RegClass, vti.RegClass>;
7237
-
7238
7221
foreach fvti = AllFloatVectors in {
7239
7222
defvar instr = !cast<Instruction>("PseudoVMERGE_VIM_"#fvti.LMul.MX);
7240
7223
let Predicates = GetVTypePredicates<fvti>.Predicates in
@@ -7418,9 +7401,6 @@ defm : VPatTernaryV_VX_VI<"int_riscv_vslidedown", "PseudoVSLIDEDOWN", AllFloatVe
7418
7401
defm : VPatBinaryV_VX<"int_riscv_vfslide1up", "PseudoVFSLIDE1UP", AllFloatVectors>;
7419
7402
defm : VPatBinaryV_VX<"int_riscv_vfslide1down", "PseudoVFSLIDE1DOWN", AllFloatVectors>;
7420
7403
7421
- defm : VPatTernaryV_VX_VI<"int_riscv_vslideup", "PseudoVSLIDEUP", AllBFloatVectors, uimm5>;
7422
- defm : VPatTernaryV_VX_VI<"int_riscv_vslidedown", "PseudoVSLIDEDOWN", AllBFloatVectors, uimm5>;
7423
-
7424
7404
//===----------------------------------------------------------------------===//
7425
7405
// 16.4. Vector Register Gather Instructions
7426
7406
//===----------------------------------------------------------------------===//
@@ -7431,18 +7411,13 @@ defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
7431
7411
7432
7412
defm : VPatBinaryV_VV_VX_VI_INT<"int_riscv_vrgather", "PseudoVRGATHER",
7433
7413
AllFloatVectors, uimm5>;
7434
- defm : VPatBinaryV_VV_VX_VI_INT<"int_riscv_vrgather", "PseudoVRGATHER",
7435
- AllBFloatVectors, uimm5>;
7436
7414
defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
7437
7415
eew=16, vtilist=AllFloatVectors>;
7438
- defm : VPatBinaryV_VV_INT_EEW<"int_riscv_vrgatherei16_vv", "PseudoVRGATHEREI16",
7439
- eew=16, vtilist=AllBFloatVectors>;
7440
7416
//===----------------------------------------------------------------------===//
7441
7417
// 16.5. Vector Compress Instruction
7442
7418
//===----------------------------------------------------------------------===//
7443
7419
defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllIntegerVectors>;
7444
7420
defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllFloatVectors>;
7445
- defm : VPatUnaryV_V_AnyMask<"int_riscv_vcompress", "PseudoVCOMPRESS", AllBFloatVectors>;
7446
7421
7447
7422
// Include the non-intrinsic ISel patterns
7448
7423
include "RISCVInstrInfoVVLPatterns.td"
0 commit comments