Lines Matching refs:SDValue
25 static SDValue emitMemMem(SelectionDAG &DAG, const SDLoc &DL, unsigned Sequence, in emitMemMem()
26 unsigned Loop, SDValue Chain, SDValue Dst, in emitMemMem()
27 SDValue Src, uint64_t Size) { in emitMemMem()
48 SDValue SystemZSelectionDAGInfo::EmitTargetCodeForMemcpy( in EmitTargetCodeForMemcpy()
49 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, SDValue Src, in EmitTargetCodeForMemcpy()
50 SDValue Size, Align Alignment, bool IsVolatile, bool AlwaysInline, in EmitTargetCodeForMemcpy()
53 return SDValue(); in EmitTargetCodeForMemcpy()
58 return SDValue(); in EmitTargetCodeForMemcpy()
64 static SDValue memsetStore(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, in memsetStore()
65 SDValue Dst, uint64_t ByteVal, uint64_t Size, in memsetStore()
75 SDValue SystemZSelectionDAGInfo::EmitTargetCodeForMemset( in EmitTargetCodeForMemset()
76 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dst, in EmitTargetCodeForMemset()
77 SDValue Byte, SDValue Size, Align Alignment, bool IsVolatile, in EmitTargetCodeForMemset()
82 return SDValue(); in EmitTargetCodeForMemset()
88 return SDValue(); in EmitTargetCodeForMemset()
100 SDValue Chain1 = memsetStore(DAG, DL, Chain, Dst, ByteVal, Size1, in EmitTargetCodeForMemset()
107 SDValue Chain2 = memsetStore( in EmitTargetCodeForMemset()
115 SDValue Chain1 = in EmitTargetCodeForMemset()
119 SDValue Dst2 = DAG.getNode(ISD::ADD, DL, PtrVT, Dst, in EmitTargetCodeForMemset()
121 SDValue Chain2 = DAG.getStore(Chain, DL, Byte, Dst2, in EmitTargetCodeForMemset()
136 SDValue DstPlus1 = DAG.getNode(ISD::ADD, DL, PtrVT, Dst, in EmitTargetCodeForMemset()
145 SDValue LenMinus1 = DAG.getNode(ISD::ADD, DL, MVT::i64, in EmitTargetCodeForMemset()
148 SDValue TripC = DAG.getNode(ISD::SRL, DL, MVT::i64, LenMinus1, in EmitTargetCodeForMemset()
153 return SDValue(); in EmitTargetCodeForMemset()
158 static SDValue emitCLC(SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, in emitCLC()
159 SDValue Src1, SDValue Src2, uint64_t Size) { in emitCLC()
182 static SDValue addIPMSequence(const SDLoc &DL, SDValue CCReg, in addIPMSequence()
184 SDValue IPM = DAG.getNode(SystemZISD::IPM, DL, MVT::i32, CCReg); in addIPMSequence()
185 SDValue SHL = DAG.getNode(ISD::SHL, DL, MVT::i32, IPM, in addIPMSequence()
187 SDValue SRA = DAG.getNode(ISD::SRA, DL, MVT::i32, SHL, in addIPMSequence()
192 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForMemcmp( in EmitTargetCodeForMemcmp()
193 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, in EmitTargetCodeForMemcmp()
194 SDValue Src2, SDValue Size, MachinePointerInfo Op1PtrInfo, in EmitTargetCodeForMemcmp()
200 SDValue CCReg = emitCLC(DAG, DL, Chain, Src2, Src1, Bytes); in EmitTargetCodeForMemcmp()
204 return std::make_pair(SDValue(), SDValue()); in EmitTargetCodeForMemcmp()
207 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForMemchr( in EmitTargetCodeForMemchr()
208 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForMemchr()
209 SDValue Char, SDValue Length, MachinePointerInfo SrcPtrInfo) const { in EmitTargetCodeForMemchr()
217 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, Length); in EmitTargetCodeForMemchr()
218 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain, in EmitTargetCodeForMemchr()
220 SDValue CCReg = End.getValue(1); in EmitTargetCodeForMemchr()
225 SDValue Ops[] = { in EmitTargetCodeForMemchr()
233 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForStrcpy( in EmitTargetCodeForStrcpy()
234 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest, in EmitTargetCodeForStrcpy()
235 SDValue Src, MachinePointerInfo DestPtrInfo, MachinePointerInfo SrcPtrInfo, in EmitTargetCodeForStrcpy()
238 SDValue EndDest = DAG.getNode(SystemZISD::STPCPY, DL, VTs, Chain, Dest, Src, in EmitTargetCodeForStrcpy()
243 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForStrcmp( in EmitTargetCodeForStrcmp()
244 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src1, in EmitTargetCodeForStrcmp()
245 SDValue Src2, MachinePointerInfo Op1PtrInfo, in EmitTargetCodeForStrcmp()
249 SDValue Unused = DAG.getNode(SystemZISD::STRCMP, DL, VTs, Chain, Src2, Src1, in EmitTargetCodeForStrcmp()
251 SDValue CCReg = Unused.getValue(1); in EmitTargetCodeForStrcmp()
261 static std::pair<SDValue, SDValue> getBoundedStrlen(SelectionDAG &DAG, in getBoundedStrlen()
263 SDValue Chain, SDValue Src, in getBoundedStrlen()
264 SDValue Limit) { in getBoundedStrlen()
267 SDValue End = DAG.getNode(SystemZISD::SEARCH_STRING, DL, VTs, Chain, in getBoundedStrlen()
270 SDValue Len = DAG.getNode(ISD::SUB, DL, PtrVT, End, Src); in getBoundedStrlen()
274 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForStrlen( in EmitTargetCodeForStrlen()
275 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForStrlen()
281 std::pair<SDValue, SDValue> SystemZSelectionDAGInfo::EmitTargetCodeForStrnlen( in EmitTargetCodeForStrnlen()
282 SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, in EmitTargetCodeForStrnlen()
283 SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const { in EmitTargetCodeForStrnlen()
286 SDValue Limit = DAG.getNode(ISD::ADD, DL, PtrVT, Src, MaxLength); in EmitTargetCodeForStrnlen()