================
@@ -0,0 +1,68 @@
+//===-- RISCVInstrInfoZvbdota.td - 'Zvbdota' instructions --*- tablegen 
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file describes the RISC-V instructions from the standard 'Zvbdota'
+// extension, providing vector batched dot-product instructions.
+// This version is still experimental as the 'Zvbdota' extension hasn't been
+// ratified yet. Version 0.2.
+//
+//===----------------------------------------------------------------------===//
+
+//===----------------------------------------------------------------------===//
+// Instruction class definitions
+//===----------------------------------------------------------------------===//
+
+// Base class for Zvbdota integer instructions (uses OPC_OP_VE)
+class ZvbdotaVV<bits<6> funct6, RISCVVFormat opv, string opcodestr>
+    : RVInstVV<funct6, opv, (outs VR:$vd_wb),
+               (ins VR:$vd, VRM8:$vs2, VR:$vs1, uimm3:$ci, VMaskOp:$vm),
+               opcodestr, "$vd, $vs2, $vs1, $ci$vm"> {
+  bits<3> ci;
+  let Inst{24-23} = vs2{4-3};
+  let Inst{22-20} = ci;
+  let Inst{6-0} = OPC_OP_VE.Value;
+  let hasSideEffects = 0;
----------------
wangpc-pp wrote:

Move these common fields `hasSideEffects`/`mayLoad`/ `mayStore` to outer scope? 
This can save some lines.

https://github.com/llvm/llvm-project/pull/196467
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to