[PATCH] D147451: [CodeGen] Enable AArch64 SVE FCMLA/FCADD instruction generation in ComplexDeinterleaving
mgabka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 6 04:35:38 PDT 2023
mgabka added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:24473-24476
- if ((VTyWidth < 128 && VTyWidth != 64) || !llvm::isPowerOf2_32(VTyWidth))
+ if ((VTyWidth < 128 && (VTy->isScalableTy() || VTyWidth != 64)) ||
+ !llvm::isPowerOf2_32(VTyWidth))
return false;
return (ScalarTy->isHalfTy() && Subtarget->hasFullFP16()) ||
----------------
NickGuy wrote:
> When working with scalable vectors, they don't have the same restriction of bit width. Treating them with a max width of 128 bits seems wasteful and inefficient, is there any way to get the vector width at compile time (is there a `target->getMaxVectorWidth()` or something)?
For the scalable vectors I don't think we want to use a min or max vector width, we should rather operate on the ElementCount and size of the ElementTypes I think.
IIUC for the scalable vectors the condition we want to check is if we are operating on the packed vector types (in that case all are supported) or on the set of unpacked vectors we are supporting, am I correct?
in that case maybe it is worth to have dedicated section for fixed width and scalable width vectors in this function?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147451/new/
https://reviews.llvm.org/D147451
More information about the llvm-commits
mailing list