@@ -1031,39 +1031,27 @@ multiclass VPatBinaryV_VV_VX_VI_VROR<string intrinsic, string instruction,
1031
1031
VPatBinaryV_VX_VROTATE<intrinsic, instruction, vtilist>,
1032
1032
VPatBinaryV_VI<intrinsic, instruction, vtilist, ImmType>;
1033
1033
1034
- multiclass VPatBinaryW_VI_VWSLL<string intrinsic, string instruction,
1035
- list<VTypeInfoToWide> vtilist> {
1036
- foreach VtiToWti = vtilist in {
1037
- defvar Vti = VtiToWti.Vti;
1038
- defvar Wti = VtiToWti.Wti;
1039
- defm : VPatBinary<intrinsic, instruction # "_VI_" # Vti.LMul.MX,
1040
- Wti.Vector, Vti.Vector, XLenVT, Vti.Mask,
1041
- Vti.Log2SEW, Wti.RegClass,
1042
- Vti.RegClass, uimm5>;
1043
- }
1044
- }
1045
-
1046
- multiclass VPatBinaryW_VX_VWSLL<string intrinsic, string instruction,
1047
- list<VTypeInfoToWide> vtilist> {
1034
+ multiclass VPatBinaryW_VV_VX_VI_VWSLL<string intrinsic, string instruction,
1035
+ list<VTypeInfoToWide> vtilist>
1036
+ : VPatBinaryW_VV<intrinsic, instruction, vtilist> {
1048
1037
foreach VtiToWti = vtilist in {
1049
1038
defvar Vti = VtiToWti.Vti;
1050
1039
defvar Wti = VtiToWti.Wti;
1051
1040
defvar kind = "V"#Vti.ScalarSuffix;
1052
1041
let Predicates = !listconcat(GetVTypePredicates<Vti>.Predicates,
1053
- GetVTypePredicates<Wti>.Predicates) in
1054
- defm : VPatBinary<intrinsic, instruction#"_"#kind#"_"#Vti.LMul.MX,
1055
- Wti.Vector, Vti.Vector, XLenVT, Vti.Mask,
1056
- Vti.Log2SEW, Wti.RegClass,
1057
- Vti.RegClass, Vti.ScalarRegClass>;
1042
+ GetVTypePredicates<Wti>.Predicates) in {
1043
+ defm : VPatBinary<intrinsic, instruction#"_"#kind#"_"#Vti.LMul.MX,
1044
+ Wti.Vector, Vti.Vector, XLenVT, Vti.Mask,
1045
+ Vti.Log2SEW, Wti.RegClass,
1046
+ Vti.RegClass, Vti.ScalarRegClass>;
1047
+ defm : VPatBinary<intrinsic, instruction # "_VI_" # Vti.LMul.MX,
1048
+ Wti.Vector, Vti.Vector, XLenVT, Vti.Mask,
1049
+ Vti.Log2SEW, Wti.RegClass,
1050
+ Vti.RegClass, uimm5>;
1051
+ }
1058
1052
}
1059
1053
}
1060
1054
1061
- multiclass VPatBinaryW_VV_VX_VI_VWSLL<string intrinsic, string instruction,
1062
- list<VTypeInfoToWide> vtilist>
1063
- : VPatBinaryW_VV<intrinsic, instruction, vtilist>,
1064
- VPatBinaryW_VX_VWSLL<intrinsic, instruction, vtilist>,
1065
- VPatBinaryW_VI_VWSLL<intrinsic, instruction, vtilist>;
1066
-
1067
1055
let Predicates = [HasStdExtZvbb] in {
1068
1056
defm : VPatUnaryV_V<"int_riscv_vbrev", "PseudoVBREV", AllIntegerVectors>;
1069
1057
defm : VPatUnaryV_V<"int_riscv_vclz", "PseudoVCLZ", AllIntegerVectors>;
0 commit comments