[PATCH] D157279: [CodeGen] Disable FP LD1RX instructions generation for Neoverse-V1

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 7 12:25:58 PDT 2023


paulwalker-arm accepted this revision.
paulwalker-arm added a comment.
This revision is now accepted and ready to land.

A couple of late requests but otherwise looks good.



================
Comment at: llvm/lib/Target/AArch64/AArch64.td:152
+def FeatureNoSVEFPLD1R : SubtargetFeature<"no-sve-fp-ld1r",
+  "NoSVEFPLD1R", "true", "Prefer LDR(LDP)+MOV over LD1RX for FP">;
+
----------------
The `LDP` is not relevant here. It was just a quirk of the code where you observed the issue.


================
Comment at: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td:2358
 
-  // LD1R of FP data
-  defm : LD1RPat<nxv8f16, load, LD1RH_IMM,   PTRUE_H, f16, am_indexed16_6b, uimm6s2>;
-  defm : LD1RPat<nxv4f16, load, LD1RH_S_IMM, PTRUE_S, f16, am_indexed16_6b, uimm6s2>;
-  defm : LD1RPat<nxv2f16, load, LD1RH_D_IMM, PTRUE_D, f16, am_indexed16_6b, uimm6s2>;
-  defm : LD1RPat<nxv4f32, load, LD1RW_IMM,   PTRUE_S, f32, am_indexed32_6b, uimm6s4>;
-  defm : LD1RPat<nxv2f32, load, LD1RW_D_IMM, PTRUE_D, f32, am_indexed32_6b, uimm6s4>;
-  defm : LD1RPat<nxv2f64, load, LD1RD_IMM,   PTRUE_D, f64, am_indexed64_6b, uimm6s8>;
+  let Predicates = [UseSVEFPLD1R] in {
+    // LD1R of FP data
----------------
Sorry I missed this before but this'll override the existing value for `Predicates` and so you'll need to add `HasSVEorSME` to be correct.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157279/new/

https://reviews.llvm.org/D157279



More information about the llvm-commits mailing list