(shl (zext to iXLenVec), C) is a possible pattern in auto-vectorized code for
indexed loads/stores. But extending to iXLen might be too aggressive, RVV
indexed load/store instructions zero extend their indexed operand to XLEN.
The patch tries to narrow the type of the zero extension. It's benefit to
decrease register pressure.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/RISCV/RISCVISelLowering.cpp | ||
---|---|---|
10634 | Can we guarantee Src has an MVT type here? The intrinsic could be used with an illegal zext input type before type legalization. | |
10635 | Can SrcElen be 1 if the input is a mask type before we legalize zero_extend? | |
12982 | I think this should be getMemIntrinsicSDNode to preserve the mem operand. |
llvm/lib/Target/RISCV/RISCVISelLowering.cpp | ||
---|---|---|
10637 | Can this create element sizes like i4 or i2? |
Can we guarantee Src has an MVT type here? The intrinsic could be used with an illegal zext input type before type legalization.