aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorFraser Cormack <fraser@codeplay.com>2021-02-04 09:56:01 +0000
committerFraser Cormack <fraser@codeplay.com>2021-03-18 09:26:18 +0000
commit0331399dc9346f3c5acdf784ddb96567efc9d538 (patch)
treeb7e649043985a34a8b61267bd4084929f6c31ba1 /flang/lib/Frontend/CompilerInvocation.cpp
parent4a7afc9a8843f4793296a260f7153fd2ef4ec497 (diff)
downloadllvm-0331399dc9346f3c5acdf784ddb96567efc9d538.zip
llvm-0331399dc9346f3c5acdf784ddb96567efc9d538.tar.gz
llvm-0331399dc9346f3c5acdf784ddb96567efc9d538.tar.bz2
[RISCV] Support scalable-vector masked gather operations
This patch supports the masked gather intrinsics in RVV. The RVV indexed load/store instructions only support the "unsigned unscaled" addressing mode; indices are implicitly zero-extended or truncated to XLEN and are treated as byte offsets. This ISA supports the intrinsics directly, but not the majority of various forms of the MGATHER SDNode that LLVM combines to. Any signed or scaled indexing is extended to the XLEN value type and scaled accordingly. This is done during DAG combining as widening the index types to XLEN may produce illegal vectors that require splitting, e.g. nxv16i8->nxv16i64. Support for scalable-vector CONCAT_VECTORS was added to avoid spilling via the stack when lowering split legalized index operands. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D96263
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions