diff options
author | Zhaoxin Yang <yangzhaoxin@loongson.cn> | 2024-07-23 12:06:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-23 12:06:59 +0800 |
commit | 464ea880cf7710cc8675c83001d7ae020406cf42 (patch) | |
tree | 0ef5fc3caefd416937fbeced2a4f106157731ae6 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 73ffeeab12d54211fd838d6ff988d111369ea196 (diff) | |
download | llvm-464ea880cf7710cc8675c83001d7ae020406cf42.zip llvm-464ea880cf7710cc8675c83001d7ae020406cf42.tar.gz llvm-464ea880cf7710cc8675c83001d7ae020406cf42.tar.bz2 |
[LoongArch][CodeGen] Implement 128-bit and 256-bit vector shuffle. (#100054)
[LoongArch][CodeGen] Implement 128-bit and 256-bit vector shuffle
operations.
In LoongArch, shuffle operations can be divided into two types:
- Single-vector shuffle: Shuffle using only one vector, with the other
vector being `undef` or not selected by mask. This can be expanded to
instructions such as `vreplvei` and `vshuf4i`.
- Two-vector shuffle: Shuflle using two vectors. This can be expanded to
instructions like `vilv[l/h]`, `vpack[ev/od]`, `vpick[ev/od]` and the
basic `vshuf`.
In the future, more optimizations may be added, such as handling 1-bit
vectors and processing single element patterns, etc.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions