[PATCH] D92762: [clang][AArch64][SVE] Avoid going through memory for coerced VLST arguments

Cullen Rhodes via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 4 05:38:53 PST 2021


c-rhodes added inline comments.


================
Comment at: clang/lib/CodeGen/CGCall.cpp:2674
+      // perform the conversion.
+      if (Ty->getAs<VectorType>()) {
+        auto *Coerced = Fn->getArg(FirstIRArg);
----------------
joechrisellis wrote:
> c-rhodes wrote:
> > Do we want to check `VT->getVectorKind() == VectorType::SveFixedLengthDataVector` and `isa<llvm::ScalableVectorType>(Coerced->getType());`?
> Do we not also want to account for predicate vectors here?
> Do we not also want to account for predicate vectors here?

I think so, but as mentioned on D92761 it'll require more thought since the insert/extract intrinsics require the element type to be identical which they aren't for predicates (`i8` for VLST and `i1` for scalable).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D92762



More information about the cfe-commits mailing list