[PATCH] D79877: [clang][SveEmitter] SVE builtins for `svusdot` and `svsudot` ACLE.

Francesco Petrogalli via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu May 14 15:47:40 PDT 2020


fpetrogalli marked 2 inline comments as done.
fpetrogalli added inline comments.


================
Comment at: clang/include/clang/Basic/arm_sve.td:1249
+def SVSUDOT_S    : SInst<"svsudot[_s32]",    "ddqb", "i",       MergeNone, "aarch64_sve_usdot", [ReverseUSDOT]>;
+def SVSUDOT_N_S  : SInst<"svsudot[_n_s32]",  "ddq@", "i",       MergeNone, "aarch64_sve_usdot", [ReverseUSDOT]>;
+
----------------
efriedma wrote:
> These intrinsics aren't overloaded; maybe consider writing the actual type int8_t/uint8_t, instead of introducing "unsigned scalar of 1/4 width element type"?  If there's some reason the current form is better, that's fine, though.
I am probably missing something, but I can't see a type specifier that is not overloaded and that renders to 8-bit elements?

I have opted for adding "unsigned scalar of 1/4 width element type" because it keeps things symmetric with the vector equivalent, signed and unsigned.

```
// r: scalar of 1/4 width element type (splat to vector type)
// @: unsigned scalar of 1/4 width element type (splat to vector type)
[..]
// b: 1/4 width unsigned elements, 4x element count
// q: 1/4 width elements, 4x element count
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79877





More information about the cfe-commits mailing list