diff options
author | Fraser Cormack <fraser@codeplay.com> | 2022-01-28 12:33:37 +0000 |
---|---|---|
committer | Fraser Cormack <fraser@codeplay.com> | 2022-02-08 10:35:25 +0000 |
commit | 62c4ac764bc0160ac4eed70a5becd4e015bcb65b (patch) | |
tree | a1ad635d48e5b08d1f77acea43da85c679f08767 /llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp | |
parent | 215aba771264c460498376ca56b7d720cbaf1265 (diff) | |
download | llvm-62c4ac764bc0160ac4eed70a5becd4e015bcb65b.zip llvm-62c4ac764bc0160ac4eed70a5becd4e015bcb65b.tar.gz llvm-62c4ac764bc0160ac4eed70a5becd4e015bcb65b.tar.bz2 |
[RISCV] Optimize splats of extracted vector elements
This patch adds an optimization to splat-like operations where the
splatted value is extracted from a identically-sized vector. On RVV we
can splat that via vrgather.vx/vrgather.vi without dropping to scalar
beforehand.
We do have a similar VECTOR_SHUFFLE-specific optimization but that only
works on fixed-length vector types and for those with a constant splat
lane. This patch extends this optimization to make it work on
scalable-vector types and on unknown extract indices.
It is performed during fixed-vector BUILD_VECTOR lowering and during a
new DAGCombine on SPLAT_VECTOR for scalable vectors.
Reviewed By: craig.topper, khchen
Differential Revision: https://reviews.llvm.org/D118456
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp')
0 files changed, 0 insertions, 0 deletions