aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2025-06-03 20:18:55 -0700
committerGitHub <noreply@github.com>2025-06-03 20:18:55 -0700
commit88738a74f05ba4002f38b8bdeebd944762c8ae7b (patch)
treecc51ae02965e34136c993b03a3090a7c53c701a6 /clang/lib/CodeGen
parent3531cc1cc777af5ea198c17c62f7324779b707e4 (diff)
downloadllvm-88738a74f05ba4002f38b8bdeebd944762c8ae7b.zip
llvm-88738a74f05ba4002f38b8bdeebd944762c8ae7b.tar.gz
llvm-88738a74f05ba4002f38b8bdeebd944762c8ae7b.tar.bz2
[RISCV] Optimize two source deinterleave2 via ri.vunzip2{a,b} (#142667)
As done for the existing vnsrl cases, we can split a two source deinterleave2 into two single source deinterleave2 and a slideup. We can also use a concat-then-deinterleave2 tactic. Both are equally valid (except in the m8 source type case), and the concat-then-deinterleave2 saves one instruction for fractional LMUL cases. Additionally, if we happen to know the exact VLEN and our fixed vectors are an even number of vector registers, we can avoid the need to split or concat entirely and just use both registers sources.
Diffstat (limited to 'clang/lib/CodeGen')
0 files changed, 0 insertions, 0 deletions