Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:SDValue

43   DenseMap<SDValue, SDValue> LegalizedNodes;
46 void AddLegalizedOperand(SDValue From, SDValue To) {
54 SDValue LegalizeOp(SDValue Op);
56 SDValue TranslateLegalizeResults(SDValue Op, SDValue Result);
58 SDValue UnrollVSETCC(SDValue Op);
63 SDValue ExpandUINT_TO_FLOAT(SDValue Op);
66 SDValue ExpandVSELECT(SDValue Op);
67 SDValue ExpandLoad(SDValue Op);
68 SDValue ExpandStore(SDValue Op);
69 SDValue ExpandFNEG(SDValue Op);
73 SDValue PromoteVectorOp(SDValue Op);
91 LegalizeOp(SDValue(I, 0));
94 SDValue OldRoot = DAG.getRoot();
106 SDValue VectorLegalizer::TranslateLegalizeResults(SDValue Op, SDValue Result) {
113 SDValue VectorLegalizer::LegalizeOp(SDValue Op) {
116 DenseMap<SDValue, SDValue>::iterator I = LegalizedNodes.find(Op);
122 SmallVector<SDValue, 8> Ops;
126 SDValue Result =
127 SDValue(DAG.UpdateNodeOperands(Op.getNode(), Ops.data(), Ops.size()), 0);
240 SDValue Tmp1 = TLI.LowerOperation(Op, DAG);
273 SDValue VectorLegalizer::PromoteVectorOp(SDValue Op) {
282 SmallVector<SDValue, 4> Operands(Op.getNumOperands());
297 SDValue VectorLegalizer::ExpandLoad(SDValue Op) {
300 SDValue Chain = LD->getChain();
301 SDValue BasePTR = LD->getBasePtr();
305 SmallVector<SDValue, 8> LoadVals;
306 SmallVector<SDValue, 8> LoadChains;
311 SDValue ScalarLoad = DAG.getExtLoad(ExtType, dl,
325 SDValue NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
327 SDValue Value = DAG.getNode(ISD::BUILD_VECTOR, dl,
336 SDValue VectorLegalizer::ExpandStore(SDValue Op) {
339 SDValue Chain = ST->getChain();
340 SDValue BasePTR = ST->getBasePtr();
341 SDValue Value = ST->getValue();
366 SmallVector<SDValue, 8> Stores;
368 SDValue Ex = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
372 SDValue Store = DAG.getTruncStore(Chain, dl, Ex, BasePTR,
381 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
387 SDValue VectorLegalizer::ExpandVSELECT(SDValue Op) {
393 SDValue Mask = Op.getOperand(0);
394 SDValue Op1 = Op.getOperand(1);
395 SDValue Op2 = Op.getOperand(2);
414 SDValue AllOnes = DAG.getConstant(
416 SDValue NotMask = DAG.getNode(ISD::XOR, DL, VT, Mask, AllOnes);
420 SDValue Val = DAG.getNode(ISD::OR, DL, VT, Op1, Op2);
424 SDValue VectorLegalizer::ExpandUINT_TO_FLOAT(SDValue Op) {
438 SDValue HalfWord = DAG.getConstant(BW/2, VT);
444 SDValue HalfWordMask = DAG.getConstant(HWMask, VT);
447 SDValue TWOHW = DAG.getConstantFP((1<<(BW/2)), Op.getValueType());
450 SDValue HI = DAG.getNode(ISD::SRL, DL, VT, Op.getOperand(0), HalfWord);
451 SDValue LO = DAG.getNode(ISD::AND, DL, VT, Op.getOperand(0), HalfWordMask);
455 SDValue fHI = DAG.getNode(ISD::SINT_TO_FP, DL, Op.getValueType(), HI);
457 SDValue fLO = DAG.getNode(ISD::SINT_TO_FP, DL, Op.getValueType(), LO);
464 SDValue VectorLegalizer::ExpandFNEG(SDValue Op) {
466 SDValue Zero = DAG.getConstantFP(-0.0, Op.getValueType());
473 SDValue VectorLegalizer::UnrollVSETCC(SDValue Op) {
477 SDValue LHS = Op.getOperand(0), RHS = Op.getOperand(1), CC = Op.getOperand(2);
480 SmallVector<SDValue, 8> Ops(NumElems);
482 SDValue LHSElem = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, TmpEltVT, LHS,
484 SDValue RHSElem = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, TmpEltVT, RHS,