This patch adds support for the custom lowering sign- and zero-extension
of fixed-length vector types. It does so through custom nodes. Since the
source and destination types are (necessarily) of different sizes, it is
possible that the source type is legal whilst the larger destination
type isn't. In this case the legalization makes heavy use of
EXTRACT_SUBVECTOR.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll | ||
---|---|---|
16 | This is using LMUL 4 for a result that fits in 128 bits. Should we be getting the container from the destination and deriving the source lmul from it instead? |
Comment Actions
- rebase
- address review feedback: grab container from extended type
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll | ||
---|---|---|
16 | That was what I tried at first, but I was seeing incorrect codegen when it came to split legalized vectors and subvector extraction. It seems to have resolved itself now though so I was obviously wrong about where the bug was. I've fixed this up now, cheers. |
This is using LMUL 4 for a result that fits in 128 bits. Should we be getting the container from the destination and deriving the source lmul from it instead?