[clang] [llvm] [RISCV] Support spacemit vsmtvdotii externsions (PR #202533)
Luke Lau via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 7 03:01:57 PDT 2026
================
@@ -54,6 +54,53 @@ defvar SlideEncodes = [SlideEncode<0b00, "1">,
SlideEncode<0b01, "2">,
SlideEncode<0b10, "3">];
+class HPEncode<bits<3> encoding, string name> {
+ bits<3> Encoding = encoding;
+ string Name = name;
+}
+defvar HPEncodes = [HPEncode<0b011, "u">,
+ HPEncode<0b110, "us">,
+ HPEncode<0b101, "su">,
+ HPEncode<0b100, "">];
+
+def SMTVType : AsmOperandClass {
+ let Name = "SMTVType";
+ let RenderMethod = "addSMTVTypeOperand";
+ let ParserMethod = "parseSMTVType";
+ let DiagnosticType = "InvalidSMTType";
+ let DiagnosticString =
+ "This Inst only supports i4 and i8, i8 is the default type";
+ let IsOptional = 1;
+ let DefaultMethod = "defaultSMTVType";
+}
+
+// SpacemiT's Integer Matrix only supports i4 and i8
+def SMT_INT : Operand<XLenVT> {
+ let ParserMatchClass = SMTVType;
+ let PrintMethod = "printSMTVType";
+ let DecoderMethod = "decodeUImmOperand<2>";
+ let OperandType = "OPERAND_SMTVType";
+ let OperandNamespace = "RISCVOp";
+}
+
+def SMTI8 : AsmOperandClass {
+ let Name = "SMTI8";
+ let RenderMethod = "addSMTVTypeOperand";
+ let DiagnosticType = "InvalidSMTI8";
+ let DiagnosticString = "smt.vmadot with slide only supports i8 type";
+ let ParserMethod = "parseSMTVType";
+ let IsOptional = 1;
+ let DefaultMethod = "defaultSMTVType";
+}
+
+def SMT_I8 : Operand<XLenVT> {
----------------
lukel97 wrote:
Nit
```suggestion
def SMT_I8 : Operand<XLenVT> {
```
https://github.com/llvm/llvm-project/pull/202533
More information about the cfe-commits
mailing list