[PATCH] D70133: [ARM, MVE] Add intrinsics for 'administrative' vector operations.

Dave Green via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 14 14:36:31 PST 2019


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

Thanks. That, er, makes it slightly simpler to review.

LGTM



================
Comment at: clang/test/CodeGen/arm-mve-intrinsics/admin.c:1671
+//
+float16x8_t test_vuninitializedq_polymorphic_f16(float16x8_t (*funcptr)(void))
+{
----------------
simon_tatham wrote:
> dmgreen wrote:
> > I see. This is the "non-evaluating" part. It looks odd from a C perspective.
> Slightly, although it's no more odd than `sizeof` or `__typeof` for only using the type of its argument and not actually evaluating it. But it's what ACLE specifies!
> 
> (I think, rather like I just mentioned in D70088, that the use case is for polymorphism within something like a C++ template – if you have the vector type as a template parameter, this allows you to generate an uninit value of the same vector type reasonably easily, without having to write your own system of C++ template specializations that select the right explicitly suffixed intrinsic.)
It's more like a macro than a function call. Makes sense.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D70133





More information about the cfe-commits mailing list