[PATCH] D75377: [DAGCombiner][X86] Disable narrowExtractedVectorLoad if the element type size isn't byte sized

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 28 11:51:25 PST 2020


craig.topper created this revision.
craig.topper added reviewers: spatel, RKSimon.
Herald added a subscriber: hiraditya.
Herald added a project: LLVM.

The address calculation for the offset assumes that you can calculate the offset by multiplying the index by the store size of the element. But that only works if the element'ss store size is exactly its real size since we store vectors tightly packed in memory. There are improvements we could make to this like special casing extracting element 0. I think we could also handle cases where the extracted VT is byte sized and the index is aligned with the extract element count.


https://reviews.llvm.org/D75377

Files:
  llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  llvm/test/CodeGen/X86/avx512-extract-subvector-load-store.ll
  llvm/test/CodeGen/X86/avx512-mask-op.ll
  llvm/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75377.247331.patch
Type: text/x-patch
Size: 47727 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200228/9878844d/attachment.bin>


More information about the llvm-commits mailing list