[PATCH] D95016: [Clang][RISCV] Add custom TableGen backend for riscv-vector intrinsics.

Zakk Chen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 21 22:53:42 PST 2021


khchen marked 7 inline comments as done.
khchen added inline comments.


================
Comment at: clang/include/clang/Basic/riscv_vector.td:191
+        defvar suffix = s_p[1];
+        defvar prototype = s_p[2];
+
----------------
Paul-C-Anagnostopoulos wrote:
> Well now, thanks for highlighting an inconsistency I did not know about. The documentation says that x[0] produces a list of the 0th element of x, which is why I suggested using !head. But that is true only in certain contexts, such as when x is a defvar. Otherwise it produces the single element. Ouch.
I also thanks for your suggestion. When I was trying to use `!head(s_p[1])` but it didn't work, and then I found giving the index is clearer.


================
Comment at: clang/include/clang/Basic/riscv_vector.td:204
+// op_list in gen-riscv-v-tests.sh.
+#ifdef ALL
+#define VADD
----------------
jrtc27 wrote:
> Probably nicer to have a notion of a builtin group and allow the records to be filtered (with the default being to process all of them). Depending on what's still to come you could even use NAME automatically as the group for RVVBinBuiltinSet's RVV(Bin)Builtins given that's always the lowercase version of the macro guarding the definitions at the moment.
@jrtc27 Sorry, I still have no idea to do that, could you please elaborate it more?
In our downstream implementation, some builtins inherit `RVVBuiltin` class directly. Does your solution still work in this situation?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95016/new/

https://reviews.llvm.org/D95016



More information about the cfe-commits mailing list