Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4
# f3d2609a 22-Aug-2024 Alexey Bataev <a.bataev@outlook.com>

[SLP]Improve/fix subvectors in gather/buildvector nodes handling

SLP vectorizer has an estimation for gather/buildvector nodes, which
contain some scalar loads. SLP vectorizer performs pretty simila

[SLP]Improve/fix subvectors in gather/buildvector nodes handling

SLP vectorizer has an estimation for gather/buildvector nodes, which
contain some scalar loads. SLP vectorizer performs pretty similar (but
large in SLOCs) estimation, which not always correct. Instead, this
patch implements clustering analysis and actual node allocation with the
full analysis for the vectorized clustered scalars (not only loads, but
also some other instructions) with the correct cost estimation and
vector insert instructions. Improves overall vectorization quality and
simplifies analysis/estimations.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/104144

show more ...


# 96b31666 23-Aug-2024 Vitaly Buka <vitalybuka@google.com>

Revert "[SLP]Improve/fix subvectors in gather/buildvector nodes handling" (#105780)

with "[Vectorize] Fix warnings"

It introduced compiler crashes, see #104144.

This reverts commit 69332bb8995

Revert "[SLP]Improve/fix subvectors in gather/buildvector nodes handling" (#105780)

with "[Vectorize] Fix warnings"

It introduced compiler crashes, see #104144.

This reverts commit 69332bb8995aef60d830406de12cb79a50390261 and
351f4a5593f1ef507708ec5eeca165b20add3340.

show more ...


# 69332bb8 22-Aug-2024 Alexey Bataev <a.bataev@outlook.com>

[SLP]Improve/fix subvectors in gather/buildvector nodes handling

SLP vectorizer has an estimation for gather/buildvector nodes, which
contain some scalar loads. SLP vectorizer performs pretty simila

[SLP]Improve/fix subvectors in gather/buildvector nodes handling

SLP vectorizer has an estimation for gather/buildvector nodes, which
contain some scalar loads. SLP vectorizer performs pretty similar (but
large in SLOCs) estimation, which not always correct. Instead, this
patch implements clustering analysis and actual node allocation with the
full analysis for the vectorized clustered scalars (not only loads, but
also some other instructions) with the correct cost estimation and
vector insert instructions. Improves overall vectorization quality and
simplifies analysis/estimations.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/104144

show more ...


Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5
# fc382db2 01-May-2024 Alexey Bataev <a.bataev@outlook.com>

[SLP]Improve comparison of shuffled loads/masked gathers by adding GEP cost.

In some cases masked gather is less profitable than insert-subvector of
consecutive/strided stores. SLP has this kind of

[SLP]Improve comparison of shuffled loads/masked gathers by adding GEP cost.

In some cases masked gather is less profitable than insert-subvector of
consecutive/strided stores. SLP has this kind of analysis, but need to
improve it by adding the cost of the GEP analysis.
Also, the GEP cost estimation for masked gather is fixed.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/90737

show more ...


# e83c6ddf 01-May-2024 Alexey Bataev <a.bataev@outlook.com>

[SLP][NFC]Add a test with the non profitable masked gather loads.