[PATCH] D91294: [X86] When storing v1i1/v2i1/v4i1 to memory, make sure we store zeros in the rest of the byte
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 12 13:28:15 PST 2020
RKSimon added inline comments.
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:23882
DAG.getUNDEF(MVT::v16i1), StoredVal,
DAG.getIntPtrConstant(0, dl));
StoredVal = DAG.getBitcast(MVT::i16, StoredVal);
----------------
craig.topper wrote:
> RKSimon wrote:
> > Any idea why we pad with a INSERT_SUBVECTOR here but use a CONCAT_VECTORS in the other case?
> I think because combineStore runs before type legalization and we try to avoid INSERT_SUBVECTOR early. LowerSTORE runs later, but I guess combineStore is called from LegalizeVectorOps and CONCAT_VECTORS wouldn't become INSERT_SUBVECTOR until LegalizeDAG. So maybe lowerStore should be using CONCAT_VECTORS as well?
Yes, consistently using CONCAT_VECTORS makes sense to me assuming there's no post-legalization gotchas.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91294/new/
https://reviews.llvm.org/D91294
More information about the llvm-commits
mailing list