[PATCH] D158836: [LoopVectorize] Vectorize the compact pattern

Tiehu Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 25 23:50:05 PDT 2023


TiehuZhang added a comment.

Hi, @mdchen, I'll fix them in the near future, thanks!



================
Comment at: llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h:28
 #include <cstdint>
-#include <optional>
 
----------------
mdchen wrote:
> Deleted by mistake?
Thanks for the reminder, I'll fix it later!


================
Comment at: llvm/lib/Transforms/Utils/LoopUtils.cpp:1134
+    return nullptr;
+  case Intrinsic::aarch64_sve_compact:
+    Function *CompactMaskDecl = Intrinsic::getDeclaration(
----------------
mdchen wrote:
> This part is aarch64-specific and should be hidden in the mid-end and implemented in the AArch64 backend.
You are right, we should hidden specific backend implementation in mid-end. I add a hook for intrinsic ID here, maybe it's not enough. Actually, I'm not sure how to implement it gracefully, as there may be different intrinsics in different backends (e.g, different number of parameters as `compact` and `compress`).  Should I add a new intrinsic for them and than lower to different intrinsics, or add hooks and directly return the specific intrinsic ?  


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D158836



More information about the llvm-commits mailing list