@@ -4442,7 +4442,7 @@ class VPatTernaryNoMask<string intrinsic,
4442
4442
op2_kind:$rs2,
4443
4443
GPR:$vl, sew)>;
4444
4444
4445
- class VPatTernaryNoMaskTA <string intrinsic,
4445
+ class VPatTernaryNoMaskTU <string intrinsic,
4446
4446
string inst,
4447
4447
string kind,
4448
4448
ValueType result_type,
@@ -4462,19 +4462,19 @@ class VPatTernaryNoMaskTA<string intrinsic,
4462
4462
result_reg_class:$rs3,
4463
4463
(op1_type op1_reg_class:$rs1),
4464
4464
op2_kind:$rs2,
4465
- GPR:$vl, log2sew, TAIL_AGNOSTIC )>;
4466
-
4467
- class VPatTernaryNoMaskTARoundingMode <string intrinsic,
4468
- string inst,
4469
- string kind,
4470
- ValueType result_type,
4471
- ValueType op1_type,
4472
- ValueType op2_type,
4473
- int log2sew,
4474
- LMULInfo vlmul,
4475
- VReg result_reg_class,
4476
- RegisterClass op1_reg_class,
4477
- DAGOperand op2_kind> :
4465
+ GPR:$vl, log2sew, TU_MU )>;
4466
+
4467
+ class VPatTernaryNoMaskTURoundingMode <string intrinsic,
4468
+ string inst,
4469
+ string kind,
4470
+ ValueType result_type,
4471
+ ValueType op1_type,
4472
+ ValueType op2_type,
4473
+ int log2sew,
4474
+ LMULInfo vlmul,
4475
+ VReg result_reg_class,
4476
+ RegisterClass op1_reg_class,
4477
+ DAGOperand op2_kind> :
4478
4478
Pat<(result_type (!cast<Intrinsic>(intrinsic)
4479
4479
(result_type result_reg_class:$rs3),
4480
4480
(op1_type op1_reg_class:$rs1),
@@ -4486,7 +4486,7 @@ class VPatTernaryNoMaskTARoundingMode<string intrinsic,
4486
4486
(op1_type op1_reg_class:$rs1),
4487
4487
op2_kind:$rs2,
4488
4488
(XLenVT timm:$round),
4489
- GPR:$vl, log2sew, TAIL_AGNOSTIC )>;
4489
+ GPR:$vl, log2sew, TU_MU )>;
4490
4490
4491
4491
class VPatTernaryNoMaskWithPolicy<string intrinsic,
4492
4492
string inst,
@@ -4617,7 +4617,7 @@ class VPatTernaryMaskPolicyRoundingMode<string intrinsic,
4617
4617
(XLenVT timm:$round),
4618
4618
GPR:$vl, log2sew, (XLenVT timm:$policy))>;
4619
4619
4620
- class VPatTernaryMaskTA <string intrinsic,
4620
+ class VPatTernaryMaskTU <string intrinsic,
4621
4621
string inst,
4622
4622
string kind,
4623
4623
ValueType result_type,
@@ -4640,9 +4640,9 @@ class VPatTernaryMaskTA<string intrinsic,
4640
4640
(op1_type op1_reg_class:$rs1),
4641
4641
op2_kind:$rs2,
4642
4642
(mask_type V0),
4643
- GPR:$vl, log2sew, TAIL_AGNOSTIC )>;
4643
+ GPR:$vl, log2sew, TU_MU )>;
4644
4644
4645
- class VPatTernaryMaskTARoundingMode <string intrinsic,
4645
+ class VPatTernaryMaskTURoundingMode <string intrinsic,
4646
4646
string inst,
4647
4647
string kind,
4648
4648
ValueType result_type,
@@ -4667,7 +4667,7 @@ class VPatTernaryMaskTARoundingMode<string intrinsic,
4667
4667
op2_kind:$rs2,
4668
4668
(mask_type V0),
4669
4669
(XLenVT timm:$round),
4670
- GPR:$vl, log2sew, TAIL_AGNOSTIC )>;
4670
+ GPR:$vl, log2sew, TU_MU )>;
4671
4671
4672
4672
multiclass VPatUnaryS_M<string intrinsic_name,
4673
4673
string inst> {
@@ -5643,7 +5643,7 @@ multiclass VPatTernaryWithPolicyRoundingMode<string intrinsic,
5643
5643
op2_kind, isSEWAware>;
5644
5644
}
5645
5645
5646
- multiclass VPatTernaryTA <string intrinsic,
5646
+ multiclass VPatTernaryTU <string intrinsic,
5647
5647
string inst,
5648
5648
string kind,
5649
5649
ValueType result_type,
@@ -5655,15 +5655,15 @@ multiclass VPatTernaryTA<string intrinsic,
5655
5655
VReg result_reg_class,
5656
5656
RegisterClass op1_reg_class,
5657
5657
DAGOperand op2_kind> {
5658
- def : VPatTernaryNoMaskTA <intrinsic, inst, kind, result_type, op1_type,
5658
+ def : VPatTernaryNoMaskTU <intrinsic, inst, kind, result_type, op1_type,
5659
5659
op2_type, log2sew, vlmul, result_reg_class,
5660
5660
op1_reg_class, op2_kind>;
5661
- def : VPatTernaryMaskTA <intrinsic, inst, kind, result_type, op1_type,
5661
+ def : VPatTernaryMaskTU <intrinsic, inst, kind, result_type, op1_type,
5662
5662
op2_type, mask_type, log2sew, vlmul,
5663
5663
result_reg_class, op1_reg_class, op2_kind>;
5664
5664
}
5665
5665
5666
- multiclass VPatTernaryTARoundingMode <string intrinsic,
5666
+ multiclass VPatTernaryTURoundingMode <string intrinsic,
5667
5667
string inst,
5668
5668
string kind,
5669
5669
ValueType result_type,
@@ -5675,10 +5675,10 @@ multiclass VPatTernaryTARoundingMode<string intrinsic,
5675
5675
VReg result_reg_class,
5676
5676
RegisterClass op1_reg_class,
5677
5677
DAGOperand op2_kind> {
5678
- def : VPatTernaryNoMaskTARoundingMode <intrinsic, inst, kind, result_type, op1_type,
5678
+ def : VPatTernaryNoMaskTURoundingMode <intrinsic, inst, kind, result_type, op1_type,
5679
5679
op2_type, log2sew, vlmul, result_reg_class,
5680
5680
op1_reg_class, op2_kind>;
5681
- def : VPatTernaryMaskTARoundingMode <intrinsic, inst, kind, result_type, op1_type,
5681
+ def : VPatTernaryMaskTURoundingMode <intrinsic, inst, kind, result_type, op1_type,
5682
5682
op2_type, mask_type, log2sew, vlmul,
5683
5683
result_reg_class, op1_reg_class, op2_kind>;
5684
5684
}
@@ -5856,15 +5856,15 @@ multiclass VPatReductionV_VS<string intrinsic, string instruction, bit IsFloat =
5856
5856
foreach vti = !if(IsFloat, NoGroupFloatVectors, NoGroupIntegerVectors) in {
5857
5857
defvar vectorM1 = !cast<VTypeInfo>(!if(IsFloat, "VF", "VI") # vti.SEW # "M1");
5858
5858
let Predicates = GetVTypePredicates<vti>.Predicates in
5859
- defm : VPatTernaryTA <intrinsic, instruction, "VS",
5859
+ defm : VPatTernaryTU <intrinsic, instruction, "VS",
5860
5860
vectorM1.Vector, vti.Vector,
5861
5861
vectorM1.Vector, vti.Mask,
5862
5862
vti.Log2SEW, vti.LMul,
5863
5863
VR, vti.RegClass, VR>;
5864
5864
}
5865
5865
foreach gvti = !if(IsFloat, GroupFloatVectors, GroupIntegerVectors) in {
5866
5866
let Predicates = GetVTypePredicates<gvti>.Predicates in
5867
- defm : VPatTernaryTA <intrinsic, instruction, "VS",
5867
+ defm : VPatTernaryTU <intrinsic, instruction, "VS",
5868
5868
gvti.VectorM1, gvti.Vector,
5869
5869
gvti.VectorM1, gvti.Mask,
5870
5870
gvti.Log2SEW, gvti.LMul,
@@ -5876,15 +5876,15 @@ multiclass VPatReductionV_VS_RM<string intrinsic, string instruction, bit IsFloa
5876
5876
foreach vti = !if(IsFloat, NoGroupFloatVectors, NoGroupIntegerVectors) in {
5877
5877
defvar vectorM1 = !cast<VTypeInfo>(!if(IsFloat, "VF", "VI") # vti.SEW # "M1");
5878
5878
let Predicates = GetVTypePredicates<vti>.Predicates in
5879
- defm : VPatTernaryTARoundingMode <intrinsic, instruction, "VS",
5879
+ defm : VPatTernaryTURoundingMode <intrinsic, instruction, "VS",
5880
5880
vectorM1.Vector, vti.Vector,
5881
5881
vectorM1.Vector, vti.Mask,
5882
5882
vti.Log2SEW, vti.LMul,
5883
5883
VR, vti.RegClass, VR>;
5884
5884
}
5885
5885
foreach gvti = !if(IsFloat, GroupFloatVectors, GroupIntegerVectors) in {
5886
5886
let Predicates = GetVTypePredicates<gvti>.Predicates in
5887
- defm : VPatTernaryTARoundingMode <intrinsic, instruction, "VS",
5887
+ defm : VPatTernaryTURoundingMode <intrinsic, instruction, "VS",
5888
5888
gvti.VectorM1, gvti.Vector,
5889
5889
gvti.VectorM1, gvti.Mask,
5890
5890
gvti.Log2SEW, gvti.LMul,
@@ -5898,7 +5898,7 @@ multiclass VPatReductionW_VS<string intrinsic, string instruction, bit IsFloat =
5898
5898
if !le(wtiSEW, 64) then {
5899
5899
defvar wtiM1 = !cast<VTypeInfo>(!if(IsFloat, "VF", "VI") # wtiSEW # "M1");
5900
5900
let Predicates = GetVTypePredicates<vti>.Predicates in
5901
- defm : VPatTernaryTA <intrinsic, instruction, "VS",
5901
+ defm : VPatTernaryTU <intrinsic, instruction, "VS",
5902
5902
wtiM1.Vector, vti.Vector,
5903
5903
wtiM1.Vector, vti.Mask,
5904
5904
vti.Log2SEW, vti.LMul,
@@ -5914,7 +5914,7 @@ multiclass VPatReductionW_VS_RM<string intrinsic, string instruction, bit IsFloa
5914
5914
if !le(wtiSEW, 64) then {
5915
5915
defvar wtiM1 = !cast<VTypeInfo>(!if(IsFloat, "VF", "VI") # wtiSEW # "M1");
5916
5916
let Predicates = GetVTypePredicates<vti>.Predicates in
5917
- defm : VPatTernaryTARoundingMode <intrinsic, instruction, "VS",
5917
+ defm : VPatTernaryTURoundingMode <intrinsic, instruction, "VS",
5918
5918
wtiM1.Vector, vti.Vector,
5919
5919
wtiM1.Vector, vti.Mask,
5920
5920
vti.Log2SEW, vti.LMul,
0 commit comments