[all-commits] [llvm/llvm-project] 62c4ac: [RISCV] Optimize splats of extracted vector elements
Fraser Cormack via All-commits
all-commits at lists.llvm.org
Tue Feb 8 02:46:11 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 62c4ac764bc0160ac4eed70a5becd4e015bcb65b
https://github.com/llvm/llvm-project/commit/62c4ac764bc0160ac4eed70a5becd4e015bcb65b
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2022-02-08 (Tue, 08 Feb 2022)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll
M llvm/test/CodeGen/RISCV/rvv/splat-vectors.ll
Log Message:
-----------
[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
More information about the All-commits
mailing list