Skip to content

Commit 2a9f464

Browse files
committed
DAG: Use poison for some load/store offsets in legalizer
1 parent d18eeae commit 2a9f464

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3344,7 +3344,7 @@ void DAGTypeLegalizer::SplitVecRes_VP_REVERSE(SDNode *N, SDValue &Lo,
33443344

33453345
SDValue TrueMask = DAG.getBoolConstant(true, DL, Mask.getValueType(), VT);
33463346
SDValue Store = DAG.getStridedStoreVP(DAG.getEntryNode(), DL, Val, StorePtr,
3347-
DAG.getUNDEF(PtrVT), Stride, TrueMask,
3347+
DAG.getPOISON(PtrVT), Stride, TrueMask,
33483348
EVL, MemVT, StoreMMO, ISD::UNINDEXED);
33493349

33503350
SDValue Load = DAG.getLoadVP(VT, DL, Store, StackPtr, Mask, EVL, LoadMMO);
@@ -3387,14 +3387,16 @@ void DAGTypeLegalizer::SplitVecRes_VP_SPLICE(SDNode *N, SDValue &Lo,
33873387

33883388
SDValue StackPtr2 = TLI.getVectorElementPointer(DAG, StackPtr, VT, EVL1);
33893389

3390+
SDValue PoisonPtr = DAG.getPOISON(PtrVT);
3391+
33903392
SDValue TrueMask = DAG.getBoolConstant(true, DL, Mask.getValueType(), VT);
3391-
SDValue StoreV1 = DAG.getStoreVP(DAG.getEntryNode(), DL, V1, StackPtr,
3392-
DAG.getUNDEF(PtrVT), TrueMask, EVL1,
3393-
V1.getValueType(), StoreMMO, ISD::UNINDEXED);
3393+
SDValue StoreV1 =
3394+
DAG.getStoreVP(DAG.getEntryNode(), DL, V1, StackPtr, PoisonPtr, TrueMask,
3395+
EVL1, V1.getValueType(), StoreMMO, ISD::UNINDEXED);
33943396

33953397
SDValue StoreV2 =
3396-
DAG.getStoreVP(StoreV1, DL, V2, StackPtr2, DAG.getUNDEF(PtrVT), TrueMask,
3397-
EVL2, V2.getValueType(), StoreMMO, ISD::UNINDEXED);
3398+
DAG.getStoreVP(StoreV1, DL, V2, StackPtr2, PoisonPtr, TrueMask, EVL2,
3399+
V2.getValueType(), StoreMMO, ISD::UNINDEXED);
33983400

33993401
SDValue Load;
34003402
if (Imm >= 0) {

0 commit comments

Comments
 (0)