================ @@ -178,6 +178,19 @@ multiclass CustomSiFiveVCIX<string suffix, VCIXType type, InTyRs1, 1>; } +let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in { +class CustomSiFiveVMACC<bits<6> funct6, RISCVVFormat opv, string opcodestr> + : RVInstVCCustom2<funct6{5-2}, opv.Value, (outs VR:$rd), (ins VR:$rs1, VR:$rs2), + opcodestr, "$rd, $rs1, $rs2"> { + let vm = 1; + let funct6_lo2 = funct6{1-0}; +} +} + +multiclass CustomSiFiveVMACC<bits<6> funct6, RISCVVFormat opv, string opcodestr> { + def _VV : CustomSiFiveVMACC<funct6, opv, opcodestr>; ---------------- 4vtomat wrote:
Since `VPatVQMACC` use `VPatTernaryNoMaskWithPolicy` which defines the pseudo instruction matching pattern as `(!cast<Instruction>(inst#"_"#kind#"_"#vlmul.MX)` which takes `kind`, so if we don't define them as `_VV` we can't reuse and need to define one on our own. https://github.com/llvm/llvm-project/pull/68295 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits