Implement the new Zvlsseg intrinsic interface proposed in https://github.com/riscv/rvv-intrinsic-doc/issues/95
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/include/clang/Basic/riscv_vector.td | ||
---|---|---|
807 | This can be a llvm::Value Operands[] = I think? | |
877 | This can be a llvm::Value Operands[] = I think? | |
clang/utils/TableGen/RISCVVEmitter.cpp | ||
441 | Point->Pointer? | |
1120 | Put curly braces around these if and else bodies since they contain a comment. The compiler doesn't need them but its more readable for humans and would be consistent with the standards documented here https://llvm.org/docs/CodingStandards.html#don-t-use-braces-on-simple-single-statement-bodies-of-if-else-loop-statements |
Do you think you can split vlseg and vlseg_ff tests in two different files? So we (potentially) reduce the test latency by half in multicore systems.
Other than this, LGTM.
We're a bit split in https://github.com/riscv/rvv-intrinsic-doc/issues/95 However there are mechanisms to assist in any transition should we be able to implement in the future alternative interfaces that we prefer over these ones.
clang/include/clang/Basic/riscv_vector.td | ||
---|---|---|
836 | I don't think this alignment is correct. A vint16mf4_t creates an alloca with align of 2 and vint8mf4_t creates an alloca with an align of 1. So I think the store here needs to match the alignment you would get for the type we're storing. This is an issue in the earlier vlseg patch as well. |
This can be a llvm::Value Operands[] = I think?