[PATCH] D146218: [AArch64][CodeGen] Lower (de)interleave2 intrinsics to ld2/st2
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 26 07:00:52 PDT 2023
paulwalker-arm added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:14765
+ if (EC.isScalable()) {
+ UseScalable = true;
+ return isPowerOf2_32(MinElts) && (MinElts * ElSize) % 128 == 0;
----------------
mgabka wrote:
> huntergr wrote:
> > mgabka wrote:
> > > is it correct to set it here to true or only if the condition below is true?
> > >
> > > from what I can see, before UseScalable was only set to true if this function was returning true
> > It's fine -- if the type is not a legal shuffle type, no transformation will be performed.
> if callers check correctly for the return value of this function.
> However, the UseScalable is already set to false, even if the function returns false, my point is that this function should modify state of UseScalable only if it returns true.
> But that is a just my personal preference I guess.
The first part is the function's design (i.e. UseScalable only contains meaning data when the function returns true). That said, this function is not great as it tries to do two different jobs. Certainly worth a redesign if there's chance to refactor the current way fixed length vectors are implemented.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D146218/new/
https://reviews.llvm.org/D146218
More information about the llvm-commits
mailing list