diff options
author | Philip Reames <preames@rivosinc.com> | 2025-06-03 20:18:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-03 20:18:55 -0700 |
commit | 88738a74f05ba4002f38b8bdeebd944762c8ae7b (patch) | |
tree | cc51ae02965e34136c993b03a3090a7c53c701a6 /clang/lib/CodeGen | |
parent | 3531cc1cc777af5ea198c17c62f7324779b707e4 (diff) | |
download | llvm-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