reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
40492   EVT StVT = St->getMemoryVT();
40493   SDLoc dl(St);
40494   unsigned Alignment = St->getAlignment();
40495   SDValue StoredVal = St->getValue();
40506     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40506     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40507                         St->getPointerInfo(), St->getAlignment(),
40507                         St->getPointerInfo(), St->getAlignment(),
40508                         St->getMemOperand()->getFlags());
40516     return DAG.getStore(St->getChain(), dl, StoredVal.getOperand(0),
40517                         St->getBasePtr(), St->getPointerInfo(),
40517                         St->getBasePtr(), St->getPointerInfo(),
40518                         St->getAlignment(), St->getMemOperand()->getFlags());
40518                         St->getAlignment(), St->getMemOperand()->getFlags());
40528     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40528     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40529                         St->getPointerInfo(), St->getAlignment(),
40529                         St->getPointerInfo(), St->getAlignment(),
40530                         St->getMemOperand()->getFlags());
40546       SDValue Ptr0 = St->getBasePtr();
40550           DAG.getStore(St->getChain(), dl, Lo, Ptr0, St->getPointerInfo(),
40550           DAG.getStore(St->getChain(), dl, Lo, Ptr0, St->getPointerInfo(),
40551                        Alignment, St->getMemOperand()->getFlags());
40553           DAG.getStore(St->getChain(), dl, Hi, Ptr1,
40554                        St->getPointerInfo().getWithOffset(4),
40556                        St->getMemOperand()->getFlags());
40561     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40561     return DAG.getStore(St->getChain(), dl, StoredVal, St->getBasePtr(),
40562                         St->getPointerInfo(), St->getAlignment(),
40562                         St->getPointerInfo(), St->getAlignment(),
40563                         St->getMemOperand()->getFlags());
40571                              *St->getMemOperand(), &Fast) &&
40577     return splitVectorStore(St, DAG);
40581   if (St->isNonTemporal() && StVT == VT && Alignment < VT.getStoreSize()) {
40588       return splitVectorStore(St, DAG);
40597       return scalarizeVectorStore(St, NTVT, DAG);
40603   if (!St->isTruncatingStore() && VT == MVT::v16i8 && !Subtarget.hasBWI() &&
40604       St->getValue().getOpcode() == ISD::TRUNCATE &&
40605       St->getValue().getOperand(0).getValueType() == MVT::v16i16 &&
40607       St->getValue().hasOneUse() && !DCI.isBeforeLegalizeOps()) {
40608     SDValue Ext = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::v16i32, St->getValue());
40609     return DAG.getTruncStore(St->getChain(), dl, Ext, St->getBasePtr(),
40609     return DAG.getTruncStore(St->getChain(), dl, Ext, St->getBasePtr(),
40610                              MVT::v16i8, St->getMemOperand());
40614   if (!St->isTruncatingStore() && StoredVal.hasOneUse() &&
40619     return EmitTruncSStore(IsSigned, St->getChain(),
40620                            dl, StoredVal.getOperand(0), St->getBasePtr(),
40621                            VT, St->getMemOperand(), DAG);
40627   if (St->isTruncatingStore() && VT.isVector()) {
40631     if (DCI.isBeforeLegalize() || TLI.isTypeLegal(St->getMemoryVT()))
40632       if (SDValue Avg = detectAVGPattern(St->getValue(), St->getMemoryVT(), DAG,
40632       if (SDValue Avg = detectAVGPattern(St->getValue(), St->getMemoryVT(), DAG,
40634         return DAG.getStore(St->getChain(), dl, Avg, St->getBasePtr(),
40634         return DAG.getStore(St->getChain(), dl, Avg, St->getBasePtr(),
40635                             St->getPointerInfo(), St->getAlignment(),
40635                             St->getPointerInfo(), St->getAlignment(),
40636                             St->getMemOperand()->getFlags());
40639       if (SDValue Val = detectSSatPattern(St->getValue(), St->getMemoryVT()))
40639       if (SDValue Val = detectSSatPattern(St->getValue(), St->getMemoryVT()))
40640         return EmitTruncSStore(true /* Signed saturation */, St->getChain(),
40641                                dl, Val, St->getBasePtr(),
40642                                St->getMemoryVT(), St->getMemOperand(), DAG);
40642                                St->getMemoryVT(), St->getMemOperand(), DAG);
40643       if (SDValue Val = detectUSatPattern(St->getValue(), St->getMemoryVT(),
40643       if (SDValue Val = detectUSatPattern(St->getValue(), St->getMemoryVT(),
40645         return EmitTruncSStore(false /* Unsigned saturation */, St->getChain(),
40646                                dl, Val, St->getBasePtr(),
40647                                St->getMemoryVT(), St->getMemOperand(), DAG);
40647                                St->getMemoryVT(), St->getMemOperand(), DAG);
40667       isa<LoadSDNode>(St->getValue()) &&
40668       cast<LoadSDNode>(St->getValue())->isSimple() &&
40669       St->getChain().hasOneUse() && St->isSimple()) {
40669       St->getChain().hasOneUse() && St->isSimple()) {
40670     LoadSDNode *Ld = cast<LoadSDNode>(St->getValue().getNode());
40694       return DAG.getStore(St->getChain(), StDL, NewLd, St->getBasePtr(),
40694       return DAG.getStore(St->getChain(), StDL, NewLd, St->getBasePtr(),
40695                           St->getMemOperand());
40713     LoAddr = St->getBasePtr();
40717         DAG.getStore(St->getChain(), StDL, LoLd, LoAddr, St->getPointerInfo(),
40717         DAG.getStore(St->getChain(), StDL, LoLd, LoAddr, St->getPointerInfo(),
40718                      St->getAlignment(), St->getMemOperand()->getFlags());
40718                      St->getAlignment(), St->getMemOperand()->getFlags());
40719     SDValue HiSt = DAG.getStore(St->getChain(), StDL, HiLd, HiAddr,
40720                                 St->getPointerInfo().getWithOffset(4),
40721                                 MinAlign(St->getAlignment(), 4),
40722                                 St->getMemOperand()->getFlags());
40733       St->getOperand(1).getOpcode() == ISD::EXTRACT_VECTOR_ELT) {
40734     SDValue OldExtract = St->getOperand(1);
40741     return DAG.getStore(St->getChain(), dl, NewExtract, St->getBasePtr(),
40741     return DAG.getStore(St->getChain(), dl, NewExtract, St->getBasePtr(),
40742                         St->getPointerInfo(), St->getAlignment(),
40742                         St->getPointerInfo(), St->getAlignment(),
40743                         St->getMemOperand()->getFlags());