[all-commits] [llvm/llvm-project] fed150: [RISCV][VP] Lower FP VP ISD nodes to RVV instructions
Fraser Cormack via All-commits
all-commits at lists.llvm.org
Thu Jun 17 02:12:34 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: fed1503e855a1e3cf936fa0866f099bf1c8c9416
https://github.com/llvm/llvm-project/commit/fed1503e855a1e3cf936fa0866f099bf1c8c9416
Author: Fraser Cormack <fraser at codeplay.com>
Date: 2021-06-17 (Thu, 17 Jun 2021)
Changed paths:
M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-vp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfdiv-vp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrdiv-vp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-vp.ll
A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfrdiv-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfrsub-vp.ll
A llvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
Log Message:
-----------
[RISCV][VP] Lower FP VP ISD nodes to RVV instructions
With the exception of `frem`, this patch supports the current set of VP
floating-point binary intrinsics by lowering them to to RVV instructions. It
does so by using the existing `RISCVISD *_VL` custom nodes as an intermediate
layer. Both scalable and fixed-length vectors are supported by using this
method.
The `frem` node is unsupported due to a lack of available instructions. For
fixed-length vectors we could scalarize but that option is not (currently)
available for scalable-vector types. The support is intentionally left out so
it equivalent for both vector types.
The matching of vector/scalar forms is currently lacking, as scalable vector
types do not lower to the custom `VFMV_V_F_VL` node. We could either make
floating-point scalable vector splats lower to this node, or support the
matching of multiple kinds of splat via a `ComplexPattern`, much like we do for
integer types.
Reviewed By: rogfer01
Differential Revision: https://reviews.llvm.org/D104237
More information about the All-commits
mailing list