[SLP]Improve cost model for the vectorized extractelements.
authorAlexey Bataev <a.bataev@outlook.com>
Tue, 6 Apr 2021 17:26:25 +0000 (10:26 -0700)
committerAlexey Bataev <a.bataev@outlook.com>
Thu, 22 Apr 2021 14:40:17 +0000 (07:40 -0700)
commite99b98cb1bca945e8a22cefaf9ef5d9972ea3535
tree83c2b3fba9d3d76f2ebf5ff4d314c629e10d5b4e
parentf070956c10cb15746ca9696e73675c5d3a34fe72
[SLP]Improve cost model for the vectorized extractelements.

1. No need to call `areAllUsersVectorized` as later the cost is
   calculated only if the instruction has one use and gets vectorized.
2. Need to calculate the cost of the dead extractelement more precisely,
   taking the vector type of the vector operand, not the resulting
   vector type.

Part of D57059.

Differential Revision: https://reviews.llvm.org/D99980
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
llvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
llvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
llvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
llvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
llvm/test/Transforms/SLPVectorizer/X86/extractelement.ll