[PATCH] D130010: [AArch64][SVE] Add ISel pattern to lower DUPLANE128 to LD1RQD
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 18 07:44:28 PDT 2022
paulwalker-arm added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td:860-862
+ def : Pat<(nxv16i8 (AArch64duplane128 (nxv16i8 (vector_insert_subvec (nxv16i8 undef), (v16i8 (load GPR64sp:$Xn)), (i64 0))), (i64 0))),
+ (LD1RQ_B_IMM (PTRUE_B 31), GPR64sp:$Xn, 0)>;
+ def : Pat<(nxv8i16 (AArch64duplane128 (nxv8i16 (vector_insert_subvec (nxv8i16 undef), (v8i16 (load GPR64sp:$Xn)), (i64 0))), (i64 0))),
----------------
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.
================
Comment at: llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll:584-594
-define dso_local <vscale x 2 x double> @dupq_ld1rqd_f64() {
-; CHECK-LABEL: dupq_ld1rqd_f64:
-; CHECK: // %bb.0:
-; CHECK-NEXT: adrp x8, .LCPI49_0
-; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI49_0]
-; CHECK-NEXT: mov z0.q, q0
-; CHECK-NEXT: ret
----------------
See my last comment on D129758, I think you want to keep these to show the need for the later DAG combine?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130010/new/
https://reviews.llvm.org/D130010
More information about the llvm-commits
mailing list