Lines Matching refs:DL

21 SystemZSelectionDAGInfo::SystemZSelectionDAGInfo(const DataLayout &DL)
22 : TargetSelectionDAGInfo(&DL) {}
32 static SDValue emitMemMem(SelectionDAG &DAG, SDLoc DL, unsigned Sequence,
48 return DAG.getNode(Loop, DL, MVT::Other, Chain, Dst, Src,
51 return DAG.getNode(Sequence, DL, MVT::Other, Chain, Dst, Src,
56 EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
65 return emitMemMem(DAG, DL, SystemZISD::MVC, SystemZISD::MVC_LOOP,
73 static SDValue memsetStore(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
80 return DAG.getStore(Chain, DL,
86 EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
110 SDValue Chain1 = memsetStore(DAG, DL, Chain, Dst, ByteVal, Size1,
114 Dst = DAG.getNode(ISD::ADD, DL, PtrVT, Dst,
117 SDValue Chain2 = memsetStore(DAG, DL, Chain, Dst, ByteVal, Size2,
119 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chain1, Chain2);
124 SDValue Chain1 = DAG.getStore(Chain, DL, Byte, Dst, DstPtrInfo,
128 SDValue Dst2 = DAG.getNode(ISD::ADD, DL, PtrVT, Dst,
130 SDValue Chain2 = DAG.getStore(Chain, DL, Byte, Dst2,
133 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chain1, Chain2);
141 return emitMemMem(DAG, DL, SystemZISD::XC, SystemZISD::XC_LOOP,
146 Chain = DAG.getStore(Chain, DL, Byte, Dst, DstPtrInfo,
148 SDValue DstPlus1 = DAG.getNode(ISD::ADD, DL, PtrVT, Dst,
150 return emitMemMem(DAG, DL, SystemZISD::MVC, SystemZISD::MVC_LOOP,
158 static SDValue emitCLC(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
171 return DAG.getNode(SystemZISD::CLC_LOOP, DL, VTs, Chain, Src1, Src2,
174 return DAG.getNode(SystemZISD::CLC, DL, VTs, Chain, Src1, Src2,
182 static SDValue addIPMSequence(SDLoc DL, SDValue Glue, SelectionDAG &DAG) {
183 SDValue IPM = DAG.getNode(SystemZISD::IPM, DL, MVT::i32, Glue);
184 SDValue SRL = DAG.getNode(ISD::SRL, DL, MVT::i32, IPM,
186 SDValue ROTL = DAG.getNode(ISD::ROTL, DL, MVT::i32, SRL,
192 EmitTargetCodeForMemcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
199 Chain = emitCLC(DAG, DL, Chain, Src1, Src2, Bytes);
201 return std::make_pair(addIPMSequence(DL, Glue, DAG), Chain);
207 EmitTargetCodeForMemchr(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
213 Length = DAG.getZExtOrTrunc(Length, DL, PtrVT);
214 Char = DAG.getZExtOrTrunc(Char, DL, MVT::i32);
215 Char = DAG.getNode(ISD::AND, DL, MVT::i32, Char,
217 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, Length);
218 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain,
232 End = DAG.getNode(SystemZISD::SELECT_CCMASK, DL, VTs, Ops);
237 EmitTargetCodeForStrcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
242 SDValue EndDest = DAG.getNode(SystemZISD::STPCPY, DL, VTs, Chain, Dest, Src,
248 EmitTargetCodeForStrcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
253 SDValue Unused = DAG.getNode(SystemZISD::STRCMP, DL, VTs, Chain, Src1, Src2,
257 return std::make_pair(addIPMSequence(DL, Glue, DAG), Chain);
265 static std::pair<SDValue, SDValue> getBoundedStrlen(SelectionDAG &DAG, SDLoc DL,
270 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain,
273 SDValue Len = DAG.getNode(ISD::SUB, DL, PtrVT, End, Src);
278 EmitTargetCodeForStrlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
281 return getBoundedStrlen(DAG, DL, Chain, Src, DAG.getConstant(0, PtrVT));
285 EmitTargetCodeForStrnlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain,
289 MaxLength = DAG.getZExtOrTrunc(MaxLength, DL, PtrVT);
290 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, MaxLength);
291 return getBoundedStrlen(DAG, DL, Chain, Src, Limit);