Lines Matching refs:DL
24 static SDValue createMemMemNode(SelectionDAG &DAG, const SDLoc &DL, unsigned Op, in createMemMemNode() argument
34 return DAG.getNode(Op, DL, VTs, Ops); in createMemMemNode()
41 static SDValue emitMemMemImm(SelectionDAG &DAG, const SDLoc &DL, unsigned Op, in emitMemMemImm() argument
46 SDValue LenAdj = DAG.getConstant(Size - Adj, DL, Dst.getValueType()); in emitMemMemImm()
47 return createMemMemNode(DAG, DL, Op, Chain, Dst, Src, LenAdj, Byte); in emitMemMemImm()
50 static SDValue emitMemMemReg(SelectionDAG &DAG, const SDLoc &DL, unsigned Op, in emitMemMemReg() argument
54 SDValue LenAdj = DAG.getNode(ISD::ADD, DL, MVT::i64, in emitMemMemReg()
55 DAG.getZExtOrTrunc(Size, DL, MVT::i64), in emitMemMemReg()
56 DAG.getConstant(0 - Adj, DL, MVT::i64)); in emitMemMemReg()
57 return createMemMemNode(DAG, DL, Op, Chain, Dst, Src, LenAdj, Byte); in emitMemMemReg()
61 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, SDValue Src, in EmitTargetCodeForMemcpy() argument
68 return emitMemMemImm(DAG, DL, SystemZISD::MVC, Chain, Dst, Src, in EmitTargetCodeForMemcpy()
71 return emitMemMemReg(DAG, DL, SystemZISD::MVC, Chain, Dst, Src, Size); in EmitTargetCodeForMemcpy()
77 static SDValue memsetStore(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, in memsetStore() argument
84 Chain, DL, DAG.getConstant(StoreVal, DL, MVT::getIntegerVT(Size * 8)), in memsetStore()
89 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, in EmitTargetCodeForMemset() argument
113 SDValue Chain1 = memsetStore(DAG, DL, Chain, Dst, ByteVal, Size1, in EmitTargetCodeForMemset()
117 Dst = DAG.getNode(ISD::ADD, DL, PtrVT, Dst, in EmitTargetCodeForMemset()
118 DAG.getConstant(Size1, DL, PtrVT)); in EmitTargetCodeForMemset()
121 memsetStore(DAG, DL, Chain, Dst, ByteVal, Size2, in EmitTargetCodeForMemset()
123 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chain1, Chain2); in EmitTargetCodeForMemset()
129 DAG.getStore(Chain, DL, Byte, Dst, DstPtrInfo, Alignment); in EmitTargetCodeForMemset()
132 SDValue Dst2 = DAG.getNode(ISD::ADD, DL, PtrVT, Dst, in EmitTargetCodeForMemset()
133 DAG.getConstant(1, DL, PtrVT)); in EmitTargetCodeForMemset()
134 SDValue Chain2 = DAG.getStore(Chain, DL, Byte, Dst2, in EmitTargetCodeForMemset()
136 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chain1, Chain2); in EmitTargetCodeForMemset()
143 return emitMemMemImm(DAG, DL, SystemZISD::XC, Chain, Dst, Dst, Bytes); in EmitTargetCodeForMemset()
145 return emitMemMemImm(DAG, DL, SystemZISD::MEMSET_MVC, Chain, Dst, SDValue(), in EmitTargetCodeForMemset()
146 Bytes, DAG.getAnyExtOrTrunc(Byte, DL, MVT::i32)); in EmitTargetCodeForMemset()
152 return emitMemMemReg(DAG, DL, SystemZISD::XC, Chain, Dst, Dst, Size); in EmitTargetCodeForMemset()
154 return emitMemMemReg(DAG, DL, SystemZISD::MEMSET_MVC, Chain, Dst, SDValue(), in EmitTargetCodeForMemset()
155 Size, DAG.getAnyExtOrTrunc(Byte, DL, MVT::i32)); in EmitTargetCodeForMemset()
162 static SDValue addIPMSequence(const SDLoc &DL, SDValue CCReg, in addIPMSequence() argument
164 SDValue IPM = DAG.getNode(SystemZISD::IPM, DL, MVT::i32, CCReg); in addIPMSequence()
165 SDValue SHL = DAG.getNode(ISD::SHL, DL, MVT::i32, IPM, in addIPMSequence()
166 DAG.getConstant(30 - SystemZ::IPM_CC, DL, MVT::i32)); in addIPMSequence()
167 SDValue SRA = DAG.getNode(ISD::SRA, DL, MVT::i32, SHL, in addIPMSequence()
168 DAG.getConstant(30, DL, MVT::i32)); in addIPMSequence()
173 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, in EmitTargetCodeForMemcmp() argument
181 CCReg = emitMemMemImm(DAG, DL, SystemZISD::CLC, Chain, Src2, Src1, Bytes); in EmitTargetCodeForMemcmp()
183 CCReg = emitMemMemReg(DAG, DL, SystemZISD::CLC, Chain, Src2, Src1, Size); in EmitTargetCodeForMemcmp()
185 return std::make_pair(addIPMSequence(DL, CCReg, DAG), Chain); in EmitTargetCodeForMemcmp()
189 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForMemchr() argument
194 Length = DAG.getZExtOrTrunc(Length, DL, PtrVT); in EmitTargetCodeForMemchr()
195 Char = DAG.getZExtOrTrunc(Char, DL, MVT::i32); in EmitTargetCodeForMemchr()
196 Char = DAG.getNode(ISD::AND, DL, MVT::i32, Char, in EmitTargetCodeForMemchr()
197 DAG.getConstant(255, DL, MVT::i32)); in EmitTargetCodeForMemchr()
198 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, Length); in EmitTargetCodeForMemchr()
199 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain, in EmitTargetCodeForMemchr()
207 End, DAG.getConstant(0, DL, PtrVT), in EmitTargetCodeForMemchr()
208 DAG.getTargetConstant(SystemZ::CCMASK_SRST, DL, MVT::i32), in EmitTargetCodeForMemchr()
209 DAG.getTargetConstant(SystemZ::CCMASK_SRST_FOUND, DL, MVT::i32), CCReg}; in EmitTargetCodeForMemchr()
210 End = DAG.getNode(SystemZISD::SELECT_CCMASK, DL, PtrVT, Ops); in EmitTargetCodeForMemchr()
215 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest, in EmitTargetCodeForStrcpy() argument
219 SDValue EndDest = DAG.getNode(SystemZISD::STPCPY, DL, VTs, Chain, Dest, Src, in EmitTargetCodeForStrcpy()
220 DAG.getConstant(0, DL, MVT::i32)); in EmitTargetCodeForStrcpy()
225 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, in EmitTargetCodeForStrcmp() argument
230 SDValue Unused = DAG.getNode(SystemZISD::STRCMP, DL, VTs, Chain, Src2, Src1, in EmitTargetCodeForStrcmp()
231 DAG.getConstant(0, DL, MVT::i32)); in EmitTargetCodeForStrcmp()
234 return std::make_pair(addIPMSequence(DL, CCReg, DAG), Chain); in EmitTargetCodeForStrcmp()
243 const SDLoc &DL, in getBoundedStrlen() argument
248 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain, in getBoundedStrlen()
249 Limit, Src, DAG.getConstant(0, DL, MVT::i32)); in getBoundedStrlen()
251 SDValue Len = DAG.getNode(ISD::SUB, DL, PtrVT, End, Src); in getBoundedStrlen()
256 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForStrlen() argument
259 return getBoundedStrlen(DAG, DL, Chain, Src, DAG.getConstant(0, DL, PtrVT)); in EmitTargetCodeForStrlen()
263 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForStrnlen() argument
266 MaxLength = DAG.getZExtOrTrunc(MaxLength, DL, PtrVT); in EmitTargetCodeForStrnlen()
267 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, MaxLength); in EmitTargetCodeForStrnlen()
268 return getBoundedStrlen(DAG, DL, Chain, Src, Limit); in EmitTargetCodeForStrnlen()