In RISC-V vector extension, users could group multiple vector registers as one pseudo register. In mixed width operations, users could use partial vector registers to reduce the register pressure. The parameter to control register grouping and partial use is called LMUL. LMUL is a part of the type. So, we have a bunch of vector types. In order to support all these types, we need new MVT types in LLVM. In this patch, I added several MVT types that are used in RISC-V vector implementation. This is a standalone patch for MVT types without RISC-V related implementation.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/IR/Function.cpp | ||
---|---|---|
752 ↗ | (On Diff #270334) | Ditto, see comment below. |
llvm/utils/TableGen/IntrinsicEmitter.cpp | ||
250 ↗ | (On Diff #270334) | I wonder if we better preserve the existing numbering here, just in case these numbers have got already been serialized somewhere. That would be my impression given the unusual ordering of some of the existing enumerators like IIT_V512 and IIT_V128. |
llvm/utils/TableGen/IntrinsicEmitter.cpp | ||
---|---|---|
250 ↗ | (On Diff #270334) | Good point. I didn't aware of this. |
It LGTM, but it's better to wait for an OK from a couple or so of other reviewers to chime in.
clang-format: please reformat the code
4 diff lines are omitted. See full path.