[PATCH] D111617: [RISCV] Lazily add RVV C intrinsics.

Kito Cheng via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue May 24 09:06:11 PDT 2022


kito-cheng added inline comments.


================
Comment at: clang/utils/TableGen/RISCVVEmitter.cpp:480
+    // They are handled by riscv_vector.h
+    if (Name == "vsetvli" || Name == "vsetvlimax")
+      continue;
----------------
khchen wrote:
> I feel little tricky to checking the name here. what do you mean they are handled by riscv_vector.h?
> do you mean they have `vsetvl_macro:RVVHeader`?
Yeah, they are defined in riscv_vector.h like this:
```
#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5)
#define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6)
#define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7)
#define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0)
#define vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1)
...
```


================
Comment at: clang/utils/TableGen/RISCVVEmitter.cpp:611
+  for (const auto &SR : SemaRecords) {
+    // Output *MUST* sync with RVVIntrinsicRecord in SemaRVVLookup.cpp.
+    OS << "{"
----------------
khchen wrote:
> I'm thinking is it possible to have an unittest or test to make sure we won't screw up in the future implementation?
> Is it possible to have unittest to test implement really have `sync` correctly?
> Is it easy to debug the mismatch problem during implementation without any new test added?
> We will add a new implementation (really cool speed up and meaningful improvement), but unfortunately we don't have any tests, that make me a little hesitating...
> 
> What do you think?
Change to another way to preventing sync those file manually, thanks for point out that!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D111617



More information about the cfe-commits mailing list