[PATCH] D26561: [AArch64] Split 0 vector stores into scalar store pairs.
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 11 13:50:49 PST 2016
MatzeB accepted this revision.
MatzeB added a comment.
This revision is now accepted and ready to land.
LGTM
================
Comment at: lib/Target/AArch64/AArch64ISelLowering.cpp:8817
+///
+static SDValue replaceZeroVectorStore(SelectionDAG &DAG, StoreSDNode *St) {
+ SDValue StVal = St->getValue();
----------------
Should use `StoreSDNode &St` as it cannot be nullptr.
================
Comment at: lib/Target/AArch64/AArch64ISelLowering.cpp:8823
+ int NumVecElts = VT.getVectorNumElements();
+ if (NumVecElts != 4 && NumVecElts != 2)
+ return SDValue();
----------------
Wouldn't we get this without the if for a 3-element vector:
```
stp xzr, xzr, [x0]
str xzr, [x0 + 16]
```
should be a sensible thing to do. Or does this need more work for a future commit?
================
Comment at: lib/Target/AArch64/AArch64ISelLowering.cpp:8944
// those up regresses performance on micro-benchmarks and olden/bh.
- if (!VT.isVector() || VT.getVectorNumElements() < 2 || VT == MVT::v2i64)
+ if (VT.getVectorNumElements() < 2 || VT == MVT::v2i64)
return SDValue();
----------------
nothing. (wanted to delete this comment but phabricator seems to be buggy)
================
Comment at: test/CodeGen/AArch64/ldst-opt.ll:1337
+
+define void @merge_zr32(i32* %p) {
+; CHECK-LABEL: merge_zr32:
----------------
A sentence explaining what we are testing would be nice. Same for the next function.
https://reviews.llvm.org/D26561
More information about the llvm-commits
mailing list