[all-commits] [llvm/llvm-project] cd9090: [SLP][Test] Fix and precommit tests for D98714

Anton Afanasyev via All-commits all-commits at lists.llvm.org
Wed May 12 21:43:05 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd9090031c83ee857f82c3344b6efd97185c928e
      https://github.com/llvm/llvm-project/commit/cd9090031c83ee857f82c3344b6efd97185c928e
  Author: Anton Afanasyev <anton.a.afanasyev at gmail.com>
  Date:   2021-05-13 (Thu, 13 May 2021)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll

  Log Message:
  -----------
  [SLP][Test] Fix and precommit tests for D98714


  Commit: ab2c499d3a2ed3d3e13d96e456c57fb35a114b31
      https://github.com/llvm/llvm-project/commit/ab2c499d3a2ed3d3e13d96e456c57fb35a114b31
  Author: Anton Afanasyev <anton.a.afanasyev at gmail.com>
  Date:   2021-05-13 (Thu, 13 May 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/add_sub_sat.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/bswap-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/bswap.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/crash_extract_subvector_cost.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/round-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AMDGPU/round.ll
    M llvm/test/Transforms/SLPVectorizer/ARM/extract-insert-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/ARM/extract-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35865-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35865.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-cast.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/arith-fp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/blending-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load.ll
    M llvm/test/Transforms/SLPVectorizer/X86/fptosi-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/fptosi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hadd.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hsub-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hsub.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/long_chains.ll
    M llvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr31599-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr31599.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr40522.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr44067-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr44067.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sext-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sext.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sign-extend-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sign-extend.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sitofp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sitofp.ll
    M llvm/test/Transforms/SLPVectorizer/X86/value-bug-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/value-bug.ll
    M llvm/test/Transforms/SLPVectorizer/X86/zext-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/zext.ll
    M llvm/test/Transforms/SLPVectorizer/vectorizable-functions-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/vectorizable-functions.ll

  Log Message:
  -----------
  [SLP] Add insertelement instructions to vectorizable tree

Add new type of tree node for `InsertElementInst` chain forming vector.
These instructions could be either removed, or replaced by shuffles during
vectorization and we can add this node to cost model, so naturally estimating
their cost, getting rid of `CompensateCost` tricks and reducing further work
for InstCombine. This fixes PR40522 and PR35732 in a natural way. Also this
patch is the first step towards revectorization of partially vectorization
(to fix PR42022 completely). After adding inserts to tree the next step is
to add vector instructions there (for instance, to merge `store <2 x float>`
and `store <2 x float>` to `store <4 x float>`).

Fixes PR40522 and PR35732.

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


Compare: https://github.com/llvm/llvm-project/compare/00a0595b253f...ab2c499d3a2e


More information about the All-commits mailing list