[PATCH] D91294: [X86] When storing v1i1/v2i1/v4i1 to memory, make sure we store zeros in the rest of the byte

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 12 07:16:16 PST 2020


craig.topper 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);
----------------
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?


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

https://reviews.llvm.org/D91294



More information about the llvm-commits mailing list