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);
238 SDValue Tmp1 = TLI.LowerOperation(Op, DAG);
271 SDValue VectorLegalizer::PromoteVectorOp(SDValue Op) {
280 SmallVector<SDValue, 4> Operands(Op.getNumOperands());
295 SDValue VectorLegalizer::ExpandLoad(SDValue Op) {
298 SDValue Chain = LD->getChain();
299 SDValue BasePTR = LD->getBasePtr();
303 SmallVector<SDValue, 8> LoadVals;
304 SmallVector<SDValue, 8> LoadChains;
309 SDValue ScalarLoad = DAG.getExtLoad(ExtType, dl,
323 SDValue NewChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
325 SDValue Value = DAG.getNode(ISD::BUILD_VECTOR, dl,
334 SDValue VectorLegalizer::ExpandStore(SDValue Op) {
337 SDValue Chain = ST->getChain();
338 SDValue BasePTR = ST->getBasePtr();
339 SDValue Value = ST->getValue();
364 SmallVector<SDValue, 8> Stores;
366 SDValue Ex = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
370 SDValue Store = DAG.getTruncStore(Chain, dl, Ex, BasePTR,
379 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
385 SDValue VectorLegalizer::ExpandVSELECT(SDValue Op) {
391 SDValue Mask = Op.getOperand(0);
392 SDValue Op1 = Op.getOperand(1);
393 SDValue Op2 = Op.getOperand(2);
410 SDValue AllOnes = DAG.getConstant(
412 SDValue NotMask = DAG.getNode(ISD::XOR, DL, VT, Mask, AllOnes);
419 SDValue VectorLegalizer::ExpandUINT_TO_FLOAT(SDValue Op) {
433 SDValue HalfWord = DAG.getConstant(BW/2, VT);
439 SDValue HalfWordMask = DAG.getConstant(HWMask, VT);
442 SDValue TWOHW = DAG.getConstantFP((1<<(BW/2)), Op.getValueType());
445 SDValue HI = DAG.getNode(ISD::SRL, DL, VT, Op.getOperand(0), HalfWord);
446 SDValue LO = DAG.getNode(ISD::AND, DL, VT, Op.getOperand(0), HalfWordMask);
450 SDValue fHI = DAG.getNode(ISD::SINT_TO_FP, DL, Op.getValueType(), HI);
452 SDValue fLO = DAG.getNode(ISD::SINT_TO_FP, DL, Op.getValueType(), LO);
459 SDValue VectorLegalizer::ExpandFNEG(SDValue Op) {
461 SDValue Zero = DAG.getConstantFP(-0.0, Op.getValueType());
468 SDValue VectorLegalizer::UnrollVSETCC(SDValue Op) {
472 SDValue LHS = Op.getOperand(0), RHS = Op.getOperand(1), CC = Op.getOperand(2);
475 SmallVector<SDValue, 8> Ops(NumElems);
477 SDValue LHSElem = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, TmpEltVT, LHS,
479 SDValue RHSElem = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, TmpEltVT, RHS,