[PATCH] D114713: [AArch64][SVE][NEON] Add NEON-SVE-Bridge intrinsics

Matt Devereau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 6 03:40:26 PST 2021


MattDevereau marked an inline comment as done.
MattDevereau added a comment.

clang-format is upset about this ordering:

#include "clang/Basic/arm_sve_builtin_cg.inc"
#include "clang/Basic/BuiltinsAArch64NeonSVEBridge_cg.def"

but swapping the order causes all SVE tests to fail. I'm ignoring the clang-format error for this



================
Comment at: clang/include/clang/Basic/BuiltinsAArch64NeonSVEBridge_cg.def:37
+SVEMAP2(svdup_neonq_f64, 3),
+SVEMAP2(svdup_neonq_bf16, 1),
+#endif
----------------
peterwaller-arm wrote:
> The second argument is a 'flags' field and these values don't look right.
> 
> Refs:
> 
> * [[ https://github.com/llvm/llvm-project/blob/84b978da3b80b986327a830c01e32f12cefe86b3/clang/utils/TableGen/SveEmitter.cpp#L1339 | SVEMAP2 emitted by tablegen ]]
> * [[ https://github.com/llvm/llvm-project/blob/84b978da3b80b986327a830c01e32f12cefe86b3/clang/include/clang/Basic/arm_sve.td#L137-L149 | Element types ]]
> * [[ https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/CGBuiltin.cpp#L9070 | Flags used in CGBuiltin ]]
> 
> The flags are a generated enum and live in `clang/include/clang/Basic/arm_sve_typeflags.inc` -- I think you'll need to #include this with `LLVM_GET_SVE_ELTTYPES` defined, and then you can write it symbolically rather than using a literal numeric value.
SVETypeFlags enums are already available by this stage so there's no need for any includes. I've replaced the numbers with the enums


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D114713



More information about the llvm-commits mailing list