[PATCH] D138791: [AArch64][SME]: Generate streaming-compatible code for ld2-alloca.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 28 06:10:57 PST 2022


sdesmalen added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:13969
 
-  if (Subtarget->useSVEForFixedLengthVectors() &&
+  if (Subtarget->forceStreamingCompatibleSVE() ||
+      (Subtarget->useSVEForFixedLengthVectors() &&
----------------
This also allows the case where the total VecSize == 32 (for e.g. `<4 x i8>` which is currently not supported by Neon), or whether the number of elements is not a power of 2 (e.g. `<6 x i8>`. Can you add a test for this case?


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:13970
+  if (Subtarget->forceStreamingCompatibleSVE() ||
+      (Subtarget->useSVEForFixedLengthVectors() &&
       (VecSize % Subtarget->getMinSVEVectorSizeInBits() == 0 ||
----------------
The indentation seems weird, did you use clang-format?


================
Comment at: llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-ld2-alloca.ll:51
 
 attributes #0 = { "target-features"="+sve" }
----------------
nit: can you add `nounwind` as one of the parameters, to avoid the .cfi directives in the output?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D138791



More information about the llvm-commits mailing list