[all-commits] [llvm/llvm-project] 8ddd1c: [SLP]Redesign vectorization of the gather nodes.

Alexey Bataev via All-commits all-commits at lists.llvm.org
Mon Nov 7 07:06:13 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8ddd1ccdf89317be1c40fa9183e214878a56151e
      https://github.com/llvm/llvm-project/commit/8ddd1ccdf89317be1c40fa9183e214878a56151e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2022-11-07 (Mon, 07 Nov 2022)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/matmul.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/splat-loads.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/packed-math.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35777.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cmp-swapped-pred.ll
    M llvm/test/Transforms/SLPVectorizer/X86/broadcast_long.ll
    M llvm/test/Transforms/SLPVectorizer/X86/buildvector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/c-ray.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cmp_sel.ll
    M llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
    M llvm/test/Transforms/SLPVectorizer/X86/compare-reduce.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_exceed_scheduling.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cse.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract-scalar-from-undef.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement-multiple-uses.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelement.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
    M llvm/test/Transforms/SLPVectorizer/X86/in-tree-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
    M llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
    M llvm/test/Transforms/SLPVectorizer/X86/ordering-bug.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-undef-input.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/remark_extract_broadcast.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_with_external_users.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-undefs.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reused-pointer.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vectorize-widest-phis.ll

  Log Message:
  -----------
  [SLP]Redesign vectorization of the gather nodes.

Gather nodes are vectorized as simply vector of the scalars instead of
relying on the actual node. It leads to the fact that in some cases
we may miss incorrect transformation (non-matching set of scalars is
just ended as a gather node instead of possible vector/gather node).
Better to rely on the actual nodes, it allows to improve stability and
better detect missed cases.

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




More information about the All-commits mailing list