aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorHsiangkai Wang <kai.wang@sifive.com>2020-12-31 17:14:15 +0800
committerHsiangkai Wang <kai.wang@sifive.com>2021-01-20 14:26:04 +0800
commit8ca4b174d703e8676c6d47a2e25895c82e2e2ab7 (patch)
tree706113d33fcbf1689d7b860be9922fd3cdb28e40 /clang/lib/Frontend/CompilerInvocation.cpp
parentf96ff3c0f8ebd941b3f6b345164c3d858b781484 (diff)
downloadllvm-8ca4b174d703e8676c6d47a2e25895c82e2e2ab7.zip
llvm-8ca4b174d703e8676c6d47a2e25895c82e2e2ab7.tar.gz
llvm-8ca4b174d703e8676c6d47a2e25895c82e2e2ab7.tar.bz2
[RISCV] Implement vlseg intrinsics.
For Zvlsseg, we need continuous vector registers for the values. We need to define new register classes for the different combinations of (number of fields and LMUL). For example, when the number of fields(NF) = 3, LMUL = 2, the values will be assigned to (V0M2, V2M2, V4M2), (V2M2, V4M2, V6M2), (V4M2, V6M2, V8M2), ... We define the vlseg intrinsics with multiple outputs. There is no way to describe the codegen patterns with multiple outputs in the tablegen files. We do the codegen in RISCVISelDAGToDAG and use EXTRACT_SUBREG to extract the values of output. The multiple scalable vector values will be put into a struct. This patch is depended on the support for scalable vector struct. Differential Revision: https://reviews.llvm.org/D94229
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions