[all-commits] [llvm/llvm-project] 0cd671: [DAGCombiner][X86] Disable narrowExtractedVectorLo...

topperc via All-commits all-commits at lists.llvm.org
Sun Mar 1 18:16:11 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 0cd6712a7af0fa2702b5d4cc733500eb5e62e7d0
      https://github.com/llvm/llvm-project/commit/0cd6712a7af0fa2702b5d4cc733500eb5e62e7d0
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-03-01 (Sun, 01 Mar 2020)

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

  Log Message:
  -----------
  [DAGCombiner][X86] Disable narrowExtractedVectorLoad if the element type size isn't byte sized

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's 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.

Differential Revision: https://reviews.llvm.org/D75377




More information about the All-commits mailing list