Lines Matching defs:ST

91   SDValue OptimizeFloatStore(StoreSDNode *ST);
384 SDValue ExpandUnalignedStore(StoreSDNode *ST, SelectionDAG &DAG,
386 SDValue Chain = ST->getChain();
387 SDValue Ptr = ST->getBasePtr();
388 SDValue Val = ST->getValue();
390 int Alignment = ST->getAlignment();
391 DebugLoc dl = ST->getDebugLoc();
392 if (ST->getMemoryVT().isFloatingPoint() ||
393 ST->getMemoryVT().isVector()) {
400 return DAG.getStore(Chain, dl, Result, Ptr, ST->getPointerInfo(),
401 ST->isVolatile(), ST->isNonTemporal(), Alignment);
405 EVT StoredVT = ST->getMemoryVT();
433 ST->getPointerInfo().getWithOffset(Offset),
434 ST->isVolatile(), ST->isNonTemporal(),
435 MinAlign(ST->getAlignment(), Offset)));
455 ST->getPointerInfo()
457 MemVT, ST->isVolatile(),
458 ST->isNonTemporal(),
459 MinAlign(ST->getAlignment(), Offset)));
464 assert(ST->getMemoryVT().isInteger() &&
465 !ST->getMemoryVT().isVector() &&
468 EVT NewStoredVT = ST->getMemoryVT().getHalfSizedIntegerVT(*DAG.getContext());
481 ST->getPointerInfo(), NewStoredVT,
482 ST->isVolatile(), ST->isNonTemporal(), Alignment);
487 ST->getPointerInfo().getWithOffset(IncrementSize),
488 NewStoredVT, ST->isVolatile(), ST->isNonTemporal(),
706 SDValue SelectionDAGLegalize::OptimizeFloatStore(StoreSDNode* ST) {
714 SDValue Tmp1 = ST->getChain();
715 SDValue Tmp2 = ST->getBasePtr();
717 unsigned Alignment = ST->getAlignment();
718 bool isVolatile = ST->isVolatile();
719 bool isNonTemporal = ST->isNonTemporal();
720 DebugLoc dl = ST->getDebugLoc();
721 if (ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(ST->getValue())) {
727 return DAG.getStore(Tmp1, dl, Tmp3, Tmp2, ST->getPointerInfo(),
736 return DAG.getStore(Tmp1, dl, Tmp3, Tmp2, ST->getPointerInfo(),
740 if (TLI.isTypeLegal(MVT::i32) && !ST->isVolatile()) {
749 Lo = DAG.getStore(Tmp1, dl, Lo, Tmp2, ST->getPointerInfo(), isVolatile,
754 ST->getPointerInfo().getWithOffset(4),
1488 StoreSDNode *ST = cast<StoreSDNode>(Node);
1489 Tmp1 = LegalizeOp(ST->getChain()); // Legalize the chain.
1490 Tmp2 = LegalizeOp(ST->getBasePtr()); // Legalize the pointer.
1491 unsigned Alignment = ST->getAlignment();
1492 bool isVolatile = ST->isVolatile();
1493 bool isNonTemporal = ST->isNonTemporal();
1495 if (!ST->isTruncatingStore()) {
1496 if (SDNode *OptStore = OptimizeFloatStore(ST).getNode()) {
1502 Tmp3 = LegalizeOp(ST->getValue());
1505 ST->getOffset()),
1514 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
1515 Type *Ty = ST->getMemoryVT().getTypeForEVT(*DAG.getContext());
1517 if (ST->getAlignment() < ABIAlignment)
1531 ST->getPointerInfo(), isVolatile,
1538 Tmp3 = LegalizeOp(ST->getValue());
1540 EVT StVT = ST->getMemoryVT();
1550 Result = DAG.getTruncStore(Tmp1, dl, Tmp3, Tmp2, ST->getPointerInfo(),
1569 Lo = DAG.getTruncStore(Tmp1, dl, Tmp3, Tmp2, ST->getPointerInfo(),
1581 ST->getPointerInfo().getWithOffset(IncrementSize),
1591 Hi = DAG.getTruncStore(Tmp1, dl, Hi, Tmp2, ST->getPointerInfo(),
1599 ST->getPointerInfo().getWithOffset(IncrementSize),
1607 if (Tmp1 != ST->getChain() || Tmp3 != ST->getValue() ||
1608 Tmp2 != ST->getBasePtr())
1611 ST->getOffset()),
1614 switch (TLI.getTruncStoreAction(ST->getValue().getValueType(), StVT)) {
1619 if (!TLI.allowsUnalignedMemoryAccesses(ST->getMemoryVT())) {
1620 Type *Ty = ST->getMemoryVT().getTypeForEVT(*DAG.getContext());
1622 if (ST->getAlignment() < ABIAlignment)
1673 ST->getPointerInfo().getWithOffset(Idx*Stride), MemSclVT,
1718 ST->getPointerInfo().getWithOffset(Idx*Stride),
1735 Result = DAG.getStore(Tmp1, dl, Tmp3, Tmp2, ST->getPointerInfo(),