[PATCH] D133421: [AArch64] break non-temporal loads over 256 into 256-loads and a smaller load
Zain Jaffal via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 8 07:17:39 PDT 2022
zjaffal added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17829
+
+ unsigned PtrOffset = 256;
+ MVT NewVT =
----------------
fhahn wrote:
> Could you add a comment here illustrating what kind of DAG nodes we create to replace the original load?
>
>
> It would also be good to document the motivation for special handling for non-temporal loads here.
Would the motivation for the special handling for non-temporal loads be something like:
We have 256-bit non-temporal load so it might be good to utilise them when having large load instructions?
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:17867
+ SDValue ExtendedReminingLoad = DAG.getNode(
+ ISD::INSERT_SUBVECTOR, DL, NewVT, {NullVector, RemainingLoad, InsertIdx});
+ LoadOps.push_back(ExtendedReminingLoad);
----------------
fhahn wrote:
> Do you need to create `NullVector` explicitly here? Could you just use `DAG.degUNDEF(NewVT)` here?
Yes I will do that
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