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

Francesco Petrogalli via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 18 15:45:16 PDT 2020


fpetrogalli marked an inline comment 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]>;
+
----------------
fpetrogalli wrote:
> 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
> ```
@efriedma , are you satisfied with this answer? are you happy for me to submit this as it is?


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