[PATCH] D133421: [AArch64] break non-temporal loads over 256 into 256-loads and a smaller load

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 26 05:45:13 PDT 2022


fhahn accepted this revision.
fhahn added a comment.
This revision is now accepted and ready to land.

LGTM, thanks for the latest changes. Some small stylistic comments inline.



================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17824
 
+// Break up nontermporal larger than 256-bits loads so LDNPQ 256-bit load
+// instruction can be selected
----------------
nit: I think this is easier to read if you keep `nontemporal loads` together. Also, period at end of sentence.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17850
+  // Replace any non temporal load over 256-bit with a series of 256 bit loads
+  // and a scalar/vector load less than 256. This way we can utilise 256-bit
+  // loads and reduce the amount of load instructions generated.
----------------
nit: utilise -> utilize (American spelling)


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17867
+    LoadOpsChain.push_back(SDValue(cast<SDNode>(NewLoad), 1));
+  }
+  // Process remaining bits of the load operation.
----------------
nit: add newline after here, to separate blocks.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17869
+  // Process remaining bits of the load operation.
+  // This is done by creating a null value vector to match the size of the
+  // 256-bit loads and inserting the remaining load to it. We extract the
----------------
nit: UNDEF vector instead of `null value vector`?


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17891
+  LoadOpsChain.push_back(SDValue(cast<SDNode>(RemainingLoad), 1));
+  EVT ConcatVectorType =
+      EVT::getVectorVT(*DAG.getContext(), MemVT.getScalarType(),
----------------
nit: use `ConcatVT` to match other names here.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17904
+}
 static SDValue performSTORECombine(SDNode *N,
                                    TargetLowering::DAGCombinerInfo &DCI,
----------------
add newline before the new function/


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D133421



More information about the llvm-commits mailing list