[PATCH] D159191: [DAGCombiner][SVE] Add support for illegal extending masked loads
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 1 05:20:57 PDT 2023
paulwalker-arm added a comment.
Is there value in adding a single fixed length test?
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:5353
+ if (auto *Ld = dyn_cast<MaskedLoadSDNode>(ExtVal->getOperand(0))) {
+ if (!isLoadExtLegalOrCustom(ISD::ZEXTLOAD, ExtVT, Ld->getValueType(0))) {
+ unsigned NumExtMaskedLoads = 0;
----------------
Is this strictly necessary? Perhaps it is but I'm wondering if you're really just trying to limit this combine to cases where ExtVT is bigger than legal?
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:5356
+ for (auto *U : Ld->getMask()->uses())
+ NumExtMaskedLoads += isa<MaskedLoadSDNode>(U) ? 1 : 0;
+
----------------
Up to you but personally I think a straight forward:
```
if (isa<MaskedLoadSDNode>(U))
++NumExtMaskedLoads;
```
is cleaner.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:5363
+
+ return ExtVT.isScalableVector() || Subtarget->useSVEForFixedLengthVectors();
}
----------------
I think this check probably want to be first so that we only start processing ExtVal when we know extending loads are a possibility.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D159191/new/
https://reviews.llvm.org/D159191
More information about the llvm-commits
mailing list