-
Notifications
You must be signed in to change notification settings - Fork 15.2k
DAG: Use poison for some load/store offsets in legalizer #167756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: users/arsenm/dag/use-poison-split-vec-res-vp-load-ff
Are you sure you want to change the base?
DAG: Use poison for some load/store offsets in legalizer #167756
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
@llvm/pr-subscribers-backend-x86 @llvm/pr-subscribers-backend-risc-v Author: Matt Arsenault (arsenm) ChangesFull diff: https://github.com/llvm/llvm-project/pull/167756.diff 1 Files Affected:
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
index 417122d467054..ff3511726ea07 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
@@ -3344,7 +3344,7 @@ void DAGTypeLegalizer::SplitVecRes_VP_REVERSE(SDNode *N, SDValue &Lo,
SDValue TrueMask = DAG.getBoolConstant(true, DL, Mask.getValueType(), VT);
SDValue Store = DAG.getStridedStoreVP(DAG.getEntryNode(), DL, Val, StorePtr,
- DAG.getUNDEF(PtrVT), Stride, TrueMask,
+ DAG.getPOISON(PtrVT), Stride, TrueMask,
EVL, MemVT, StoreMMO, ISD::UNINDEXED);
SDValue Load = DAG.getLoadVP(VT, DL, Store, StackPtr, Mask, EVL, LoadMMO);
@@ -3387,14 +3387,16 @@ void DAGTypeLegalizer::SplitVecRes_VP_SPLICE(SDNode *N, SDValue &Lo,
SDValue StackPtr2 = TLI.getVectorElementPointer(DAG, StackPtr, VT, EVL1);
+ SDValue PoisonPtr = DAG.getPOISON(PtrVT);
+
SDValue TrueMask = DAG.getBoolConstant(true, DL, Mask.getValueType(), VT);
- SDValue StoreV1 = DAG.getStoreVP(DAG.getEntryNode(), DL, V1, StackPtr,
- DAG.getUNDEF(PtrVT), TrueMask, EVL1,
- V1.getValueType(), StoreMMO, ISD::UNINDEXED);
+ SDValue StoreV1 =
+ DAG.getStoreVP(DAG.getEntryNode(), DL, V1, StackPtr, PoisonPtr, TrueMask,
+ EVL1, V1.getValueType(), StoreMMO, ISD::UNINDEXED);
SDValue StoreV2 =
- DAG.getStoreVP(StoreV1, DL, V2, StackPtr2, DAG.getUNDEF(PtrVT), TrueMask,
- EVL2, V2.getValueType(), StoreMMO, ISD::UNINDEXED);
+ DAG.getStoreVP(StoreV1, DL, V2, StackPtr2, PoisonPtr, TrueMask, EVL2,
+ V2.getValueType(), StoreMMO, ISD::UNINDEXED);
SDValue Load;
if (Imm >= 0) {
|
2a9f464 to
ca207de
Compare
ca207de to
894713d
Compare

No description provided.