diff options
author | Fraser Cormack <fraser@codeplay.com> | 2020-12-15 13:05:32 +0000 |
---|---|---|
committer | Fraser Cormack <fraser@codeplay.com> | 2020-12-23 20:16:18 +0000 |
commit | 1a7ac29a89f8209dda6567a3d48594a618aa1621 (patch) | |
tree | abd14dbb7ae2dbbe7e1231fe2daf959ab20b64f5 /clang/lib/Basic/Module.cpp | |
parent | 899faa50f206073cdd8eeaaa130ffa15f850e656 (diff) | |
download | llvm-1a7ac29a89f8209dda6567a3d48594a618aa1621.zip llvm-1a7ac29a89f8209dda6567a3d48594a618aa1621.tar.gz llvm-1a7ac29a89f8209dda6567a3d48594a618aa1621.tar.bz2 |
[RISCV] Add ISel support for RVV vector/scalar forms
This patch extends the SDNode ISel support for RVV from only the
vector/vector instructions to include the vector/scalar and
vector/immediate forms.
It uses splat_vector to carry the scalar in each case, except when
XLEN<SEW (RV32 SEW=64) when a custom node `SPLAT_VECTOR_I64` is used for
type-legalization and to encode the fact that the value is sign-extended
to SEW. When the scalar is a full 64-bit value we use a sequence to
materialize the constant into the vector register.
The non-intrinsic ISel patterns have also been split into their own
file.
Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Fraser Cormack <fraser@codeplay.com>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D93312
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions