This allows the peephole optimizer to know that a MVE_VMOV_to_lane_32 is the same as an insert subreg, allowing it to optimize some redundant lane moves.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
5407 | Hm, why this change? Is this a simplification? Don't think I understand this change. |
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
5407 | Thanks for taking a look. VSETLNi32 handles D regs, so ssub_0 or ssub_1. Because MVE_VMOV_to_lane_32 is working on Q regs it can be ssub_2 or ssub_3 as well. There are other places in llvm that assume that ssub_0 + x == ssub_x, so that seems safe to use. |
llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | ||
---|---|---|
5407 | Ah, okay, thanks, that's all clear now. LGTM |
Hm, why this change? Is this a simplification? Don't think I understand this change.