[all-commits] [llvm/llvm-project] 30edf1: [SLP]Do not early exit if the number of unique ele...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Fri Sep 8 07:01:00 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 30edf1c449cd428642e3fc64d130b05b2c243d6f
      https://github.com/llvm/llvm-project/commit/30edf1c449cd428642e3fc64d130b05b2c243d6f
  Author: Alexey Bataev <5361294+alexey-bataev at users.noreply.github.com>
  Date:   2023-09-08 (Fri, 08 Sep 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cse.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll

  Log Message:
  -----------
  [SLP]Do not early exit if the number of unique elements is non-power-of-2. (#65476)

We still can try to vectorize the bundle of the instructions, even if
the
repeated number of instruction is non-power-of-2. In this case need to
adjust the cost (calculate the cost only for unique scalar instructions)
and cost of the extracts. Also, when scheduling the bundle need to
schedule only unique scalars to avoid compiler crash because of the
multiple dependencies. Can be safely applied only if all scalars's users
are also vectorized and do not require memory accesses (this one is
a temporarily requirement, can be relaxed later).

---------

Co-authored-by: Alexey Bataev <a.bataev at outlook.com>




More information about the All-commits mailing list