Following on from https://reviews.llvm.org/D128902, lower DUPLANE128 to LD1RQD for integer load types from instruction selection.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This patch has been created as a result of (https://reviews.llvm.org/D129758#inline-1248669)
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
878–880 | Is there a reason not to add the floating point patterns, especially since you've got the tests to show they'll just work? Also see LD1RPat as you likely want to do something similar and I think it's worth having the related logic bunched together. | |
llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll | ||
584–594 | See my last comment on D129758, I think you want to keep these to show the need for the later DAG combine? |
llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll | ||
---|---|---|
584–594 | Discussed offline. It seems all floating point vector splats are being bitcasted from integer vector loads regardless of the input being constant and so these tests are redundant. | |
llvm/test/CodeGen/AArch64/sve-ld1r.ll | ||
726 | Given we can drop the constant tests entirely, you can drop the _ptr from the function names if you want. |
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
878–880 | Discussed offline, this would need a bitcast added to the pattern for the load result and these patterns would be removed by child revision https://reviews.llvm.org/D130013 |
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | ||
---|---|---|
880 | Looks like an overly large indent. |
Is there a reason not to add the floating point patterns, especially since you've got the tests to show they'll just work? Also see LD1RPat as you likely want to do something similar and I think it's worth having the related logic bunched together.