[PATCH] D74590: [LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load and SplitVecResLoad
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 14 13:16:20 PST 2020
efriedma added inline comments.
================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:3675
+ // A vector must always be stored in memory as-is, i.e. without any padding
+ // between the elements, since various code depend on it, e.g. in the
----------------
craig.topper wrote:
> This is duplicated from the code in TargetLowering because I had to produce a build vector with more results than the original type.
>
> Given that the code in TargetLowering is separated in its own pass inside scalarizeVectorLoad, I wonder if I should just have handle both with a helper function local to LegalizeTypes and not touch scalarizeVectorLoad?
Can't you just call scalarizeVectorLoad, then widen the result?
I'd prefer to have one copy of the "load a non-byte-sized vector" code... we already have at least one other version in VectorLegalizer::ExpandLoad . scalarizeVectorLoad seems like a fine place to keep the code in question.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D74590/new/
https://reviews.llvm.org/D74590
More information about the llvm-commits
mailing list