• Home
  • Raw
  • Download

Lines Matching refs:DAG

59     SelectionDAG &DAG;  member in __anon3ce142f50111::DAGCombiner
281 : DAG(D), TLI(D.getTargetLoweringInfo()), Level(Unrestricted), in DAGCombiner()
287 SelectionDAG &getDAG() const { return DAG; } in getDAG()
419 static SDValue GetNegatedExpression(SDValue Op, SelectionDAG &DAG, in GetNegatedExpression() argument
433 return DAG.getConstantFP(V, Op.getValueType()); in GetNegatedExpression()
441 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
442 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
446 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
447 GetNegatedExpression(Op.getOperand(1), DAG, in GetNegatedExpression()
460 return DAG.getNode(ISD::FSUB, Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
469 return DAG.getNode(Op.getOpcode(), Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
470 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
475 return DAG.getNode(Op.getOpcode(), Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
477 GetNegatedExpression(Op.getOperand(1), DAG, in GetNegatedExpression()
482 return DAG.getNode(Op.getOpcode(), Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
483 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
486 return DAG.getNode(ISD::FP_ROUND, Op.getDebugLoc(), Op.getValueType(), in GetNegatedExpression()
487 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
537 DAG.FoldConstantArithmetic(Opc, VT, in ReassociateOps()
540 return DAG.getNode(Opc, DL, VT, N0.getOperand(0), OpNode); in ReassociateOps()
544 SDValue OpNode = DAG.getNode(Opc, N0.getDebugLoc(), VT, in ReassociateOps()
547 return DAG.getNode(Opc, DL, VT, OpNode, N0.getOperand(1)); in ReassociateOps()
555 DAG.FoldConstantArithmetic(Opc, VT, in ReassociateOps()
558 return DAG.getNode(Opc, DL, VT, N1.getOperand(0), OpNode); in ReassociateOps()
562 SDValue OpNode = DAG.getNode(Opc, N0.getDebugLoc(), VT, in ReassociateOps()
565 return DAG.getNode(Opc, DL, VT, OpNode, N1.getOperand(1)); in ReassociateOps()
577 N->dump(&DAG); in CombineTo()
579 To[0].getNode()->dump(&DAG); in CombineTo()
586 DAG.ReplaceAllUsesWith(N, To, &DeadNodes); in CombineTo()
607 DAG.DeleteNode(N); in CombineTo()
617 DAG.ReplaceAllUsesOfValueWith(TLO.Old, TLO.New, &DeadNodes); in CommitTargetLoweringOpt()
635 DAG.DeleteNode(TLO.Old.getNode()); in CommitTargetLoweringOpt()
643 TargetLowering::TargetLoweringOpt TLO(DAG, LegalTypes, LegalOperations); in SimplifyDemandedBits()
654 TLO.Old.getNode()->dump(&DAG); in SimplifyDemandedBits()
656 TLO.New.getNode()->dump(&DAG); in SimplifyDemandedBits()
666 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, dl, VT, SDValue(ExtLoad, 0)); in ReplaceLoadWithPromotedLoad()
669 Load->dump(&DAG); in ReplaceLoadWithPromotedLoad()
671 Trunc.getNode()->dump(&DAG); in ReplaceLoadWithPromotedLoad()
674 DAG.ReplaceAllUsesOfValueWith(SDValue(Load, 0), Trunc, &DeadNodes); in ReplaceLoadWithPromotedLoad()
675 DAG.ReplaceAllUsesOfValueWith(SDValue(Load, 1), SDValue(ExtLoad, 1), in ReplaceLoadWithPromotedLoad()
678 DAG.DeleteNode(Load); in ReplaceLoadWithPromotedLoad()
692 return DAG.getExtLoad(ExtType, dl, PVT, in PromoteOperand()
703 return DAG.getNode(ISD::AssertSext, dl, PVT, in PromoteOperand()
707 return DAG.getNode(ISD::AssertZext, dl, PVT, in PromoteOperand()
713 return DAG.getNode(ExtOpc, dl, PVT, Op); in PromoteOperand()
719 return DAG.getNode(ISD::ANY_EXTEND, dl, PVT, Op); in PromoteOperand()
735 return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, NewOp.getValueType(), NewOp, in SExtPromoteOperand()
736 DAG.getValueType(OldVT)); in SExtPromoteOperand()
750 return DAG.getZeroExtendInReg(NewOp, dl, OldVT); in ZExtPromoteOperand()
803 Op.getNode()->dump(&DAG)); in PromoteIntBinOp()
805 return DAG.getNode(ISD::TRUNCATE, dl, VT, in PromoteIntBinOp()
806 DAG.getNode(Opc, dl, PVT, NN0, NN1)); in PromoteIntBinOp()
850 Op.getNode()->dump(&DAG)); in PromoteIntShiftOp()
852 return DAG.getNode(ISD::TRUNCATE, dl, VT, in PromoteIntShiftOp()
853 DAG.getNode(Opc, dl, PVT, N0, Op.getOperand(1))); in PromoteIntShiftOp()
881 Op.getNode()->dump(&DAG)); in PromoteExtend()
882 return DAG.getNode(Op.getOpcode(), Op.getDebugLoc(), VT, Op.getOperand(0)); in PromoteExtend()
915 SDValue NewLD = DAG.getExtLoad(ExtType, dl, PVT, in PromoteLoad()
920 SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, VT, NewLD); in PromoteLoad()
923 N->dump(&DAG); in PromoteLoad()
925 Result.getNode()->dump(&DAG); in PromoteLoad()
928 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Result, &DeadNodes); in PromoteLoad()
929 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), NewLD.getValue(1), &DeadNodes); in PromoteLoad()
931 DAG.DeleteNode(N); in PromoteLoad()
950 WorkList.reserve(DAG.allnodes_size()); in Run()
951 for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(), in Run()
952 E = DAG.allnodes_end(); I != E; ++I) in Run()
958 HandleSDNode Dummy(DAG.getRoot()); in Run()
962 DAG.setRoot(SDValue()); in Run()
977 DAG.DeleteNode(N); in Run()
1000 N->dump(&DAG); in Run()
1002 RV.getNode()->dump(&DAG); in Run()
1006 DAG.TransferDbgValues(SDValue(N, 0), RV); in Run()
1009 DAG.ReplaceAllUsesWith(N, RV.getNode(), &DeadNodes); in Run()
1014 DAG.ReplaceAllUsesWith(N, &OpV, &DeadNodes); in Run()
1036 DAG.DeleteNode(N); in Run()
1041 DAG.setRoot(Dummy.getValue()); in Run()
1127 DagCombineInfo(DAG, !LegalTypes, !LegalOperations, false, this); in combine()
1173 SDNode *CSENode = DAG.getNodeIfExists(N->getOpcode(), N->getVTList(), in combine()
1261 Result = DAG.getEntryNode(); in visitTokenFactor()
1264 Result = DAG.getNode(ISD::TokenFactor, N->getDebugLoc(), in visitTokenFactor()
1283 DAG.ReplaceAllUsesOfValueWith(SDValue(N, i), N->getOperand(i), in visitMERGE_VALUES()
1287 DAG.DeleteNode(N); in visitMERGE_VALUES()
1293 SelectionDAG &DAG) { in combineShlAddConstant() argument
1302 N0 = DAG.getNode(ISD::ADD, N0.getDebugLoc(), VT, in combineShlAddConstant()
1303 DAG.getNode(ISD::SHL, N00.getDebugLoc(), VT, in combineShlAddConstant()
1305 DAG.getNode(ISD::SHL, N01.getDebugLoc(), VT, in combineShlAddConstant()
1307 return DAG.getNode(ISD::ADD, DL, VT, N0, N1); in combineShlAddConstant()
1333 return DAG.FoldConstantArithmetic(ISD::ADD, VT, N0C, N1C); in visitADD()
1336 return DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, N1, N0); in visitADD()
1344 return DAG.getGlobalAddress(GA->getGlobal(), N1C->getDebugLoc(), VT, in visitADD()
1350 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitADD()
1351 DAG.getConstant(N1C->getAPIntValue()+ in visitADD()
1361 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N1, N0.getOperand(1)); in visitADD()
1365 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N0, N1.getOperand(1)); in visitADD()
1375 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N1.getOperand(0), in visitADD()
1380 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N1.getOperand(0), in visitADD()
1386 return DAG.getNode(N1.getOpcode(), N->getDebugLoc(), VT, in visitADD()
1397 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitADD()
1398 DAG.getNode(ISD::ADD, N0.getDebugLoc(), VT, N00, N10), in visitADD()
1399 DAG.getNode(ISD::ADD, N1.getDebugLoc(), VT, N01, N11)); in visitADD()
1410 DAG.ComputeMaskedBits(N0, Mask, LHSZero, LHSOne); in visitADD()
1413 DAG.ComputeMaskedBits(N1, Mask, RHSZero, RHSOne); in visitADD()
1419 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, N0, N1); in visitADD()
1425 SDValue Result = combineShlAddConstant(N->getDebugLoc(), N0, N1, DAG); in visitADD()
1429 SDValue Result = combineShlAddConstant(N->getDebugLoc(), N1, N0, DAG); in visitADD()
1439 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N0, in visitADD()
1440 DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, in visitADD()
1448 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N1, in visitADD()
1449 DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, in visitADD()
1456 unsigned NumSignBits = DAG.ComputeNumSignBits(AndOp0); in visitADD()
1463 return DAG.getNode(ISD::SUB, DL, VT, N->getOperand(0), AndOp0); in visitADD()
1472 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitADD()
1473 return DAG.getNode(ISD::SUB, DL, VT, N1, ZExt); in visitADD()
1488 return CombineTo(N, DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, N1, N0), in visitADDC()
1489 DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1494 return DAG.getNode(ISD::ADDC, N->getDebugLoc(), N->getVTList(), N1, N0); in visitADDC()
1498 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1505 DAG.ComputeMaskedBits(N0, Mask, LHSZero, LHSOne); in visitADDC()
1508 DAG.ComputeMaskedBits(N1, Mask, RHSZero, RHSOne); in visitADDC()
1514 return CombineTo(N, DAG.getNode(ISD::OR, N->getDebugLoc(), VT, N0, N1), in visitADDC()
1515 DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1531 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), DAG.getNode(ISD::CARRY_FALSE, in visitADDE()
1537 return DAG.getNode(ISD::ADDE, N->getDebugLoc(), N->getVTList(), in visitADDE()
1542 return DAG.getNode(ISD::ADDC, N->getDebugLoc(), N->getVTList(), N1, N0); in visitADDE()
1550 SelectionDAG &DAG, bool LegalOperations) { in tryFoldToZero() argument
1552 return DAG.getConstant(0, VT); in tryFoldToZero()
1556 SDValue El = DAG.getConstant(0, VT.getVectorElementType()); in tryFoldToZero()
1558 return DAG.getNode(ISD::BUILD_VECTOR, DL, VT, in tryFoldToZero()
1582 return tryFoldToZero(N->getDebugLoc(), TLI, VT, DAG, LegalOperations); in visitSUB()
1585 return DAG.FoldConstantArithmetic(ISD::SUB, VT, N0C, N1C); in visitSUB()
1588 return DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, N0, in visitSUB()
1589 DAG.getConstant(-N1C->getAPIntValue(), VT)); in visitSUB()
1592 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, N1, N0); in visitSUB()
1604 SDValue NewC = DAG.getConstant((N0C->getAPIntValue() - N1C1->getAPIntValue()), VT); in visitSUB()
1605 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, NewC, in visitSUB()
1613 return DAG.getNode(N0.getOperand(1).getOpcode(), N->getDebugLoc(), VT, in visitSUB()
1619 return DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, in visitSUB()
1625 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitSUB()
1639 return DAG.getGlobalAddress(GA->getGlobal(), N1C->getDebugLoc(), VT, in visitSUB()
1645 return DAG.getConstant((uint64_t)GA->getOffset() - GB->getOffset(), in visitSUB()
1667 return DAG.getConstant(0, VT); in visitMUL()
1670 return DAG.FoldConstantArithmetic(ISD::MUL, VT, N0C, N1C); in visitMUL()
1673 return DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, N1, N0); in visitMUL()
1679 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitMUL()
1680 DAG.getConstant(0, VT), N0); in visitMUL()
1683 return DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0, in visitMUL()
1684 DAG.getConstant(N1C->getAPIntValue().logBase2(), in visitMUL()
1691 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitMUL()
1692 DAG.getConstant(0, VT), in visitMUL()
1693 DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0, in visitMUL()
1694 DAG.getConstant(Log2Val, in visitMUL()
1700 SDValue C3 = DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, in visitMUL()
1703 return DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, in visitMUL()
1722 SDValue Mul = DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, in visitMUL()
1724 return DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, in visitMUL()
1732 return DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, in visitMUL()
1733 DAG.getNode(ISD::MUL, N0.getDebugLoc(), VT, in visitMUL()
1735 DAG.getNode(ISD::MUL, N1.getDebugLoc(), VT, in visitMUL()
1761 return DAG.FoldConstantArithmetic(ISD::SDIV, VT, N0C, N1C); in visitSDIV()
1767 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitSDIV()
1768 DAG.getConstant(0, VT), N0); in visitSDIV()
1772 if (DAG.SignBitIsZero(N1) && DAG.SignBitIsZero(N0)) in visitSDIV()
1773 return DAG.getNode(ISD::UDIV, N->getDebugLoc(), N1.getValueType(), in visitSDIV()
1790 SDValue SGN = DAG.getNode(ISD::SRA, N->getDebugLoc(), VT, N0, in visitSDIV()
1791 DAG.getConstant(VT.getSizeInBits()-1, in visitSDIV()
1796 SDValue SRL = DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, SGN, in visitSDIV()
1797 DAG.getConstant(VT.getSizeInBits() - lg2, in visitSDIV()
1799 SDValue ADD = DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, N0, SRL); in visitSDIV()
1802 SDValue SRA = DAG.getNode(ISD::SRA, N->getDebugLoc(), VT, ADD, in visitSDIV()
1803 DAG.getConstant(lg2, getShiftAmountTy(ADD.getValueType()))); in visitSDIV()
1811 return DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, in visitSDIV()
1812 DAG.getConstant(0, VT), SRA); in visitSDIV()
1825 return DAG.getConstant(0, VT); in visitSDIV()
1848 return DAG.FoldConstantArithmetic(ISD::UDIV, VT, N0C, N1C); in visitUDIV()
1851 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0, in visitUDIV()
1852 DAG.getConstant(N1C->getAPIntValue().logBase2(), in visitUDIV()
1859 SDValue Add = DAG.getNode(ISD::ADD, N->getDebugLoc(), ADDVT, in visitUDIV()
1861 DAG.getConstant(SHC->getAPIntValue() in visitUDIV()
1865 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0, Add); in visitUDIV()
1877 return DAG.getConstant(0, VT); in visitUDIV()
1894 return DAG.FoldConstantArithmetic(ISD::SREM, VT, N0C, N1C); in visitSREM()
1898 if (DAG.SignBitIsZero(N1) && DAG.SignBitIsZero(N0)) in visitSREM()
1899 return DAG.getNode(ISD::UREM, N->getDebugLoc(), VT, N0, N1); in visitSREM()
1905 SDValue Div = DAG.getNode(ISD::SDIV, N->getDebugLoc(), VT, N0, N1); in visitSREM()
1909 SDValue Mul = DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, in visitSREM()
1911 SDValue Sub = DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N0, Mul); in visitSREM()
1919 return DAG.getConstant(0, VT); in visitSREM()
1936 return DAG.FoldConstantArithmetic(ISD::UREM, VT, N0C, N1C); in visitUREM()
1939 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0, in visitUREM()
1940 DAG.getConstant(N1C->getAPIntValue()-1,VT)); in visitUREM()
1946 DAG.getNode(ISD::ADD, N->getDebugLoc(), VT, N1, in visitUREM()
1947 DAG.getConstant(APInt::getAllOnesValue(VT.getSizeInBits()), in visitUREM()
1950 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0, Add); in visitUREM()
1958 SDValue Div = DAG.getNode(ISD::UDIV, N->getDebugLoc(), VT, N0, N1); in visitUREM()
1962 SDValue Mul = DAG.getNode(ISD::MUL, N->getDebugLoc(), VT, in visitUREM()
1964 SDValue Sub = DAG.getNode(ISD::SUB, N->getDebugLoc(), VT, N0, Mul); in visitUREM()
1972 return DAG.getConstant(0, VT); in visitUREM()
1992 return DAG.getNode(ISD::SRA, N->getDebugLoc(), N0.getValueType(), N0, in visitMULHS()
1993 DAG.getConstant(N0.getValueType().getSizeInBits() - 1, in visitMULHS()
1997 return DAG.getConstant(0, VT); in visitMULHS()
2004 EVT NewVT = EVT::getIntegerVT(*DAG.getContext(), SimpleSize*2); in visitMULHS()
2006 N0 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N0); in visitMULHS()
2007 N1 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N1); in visitMULHS()
2008 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHS()
2009 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHS()
2010 DAG.getConstant(SimpleSize, getShiftAmountTy(N1.getValueType()))); in visitMULHS()
2011 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHS()
2030 return DAG.getConstant(0, N0.getValueType()); in visitMULHU()
2033 return DAG.getConstant(0, VT); in visitMULHU()
2040 EVT NewVT = EVT::getIntegerVT(*DAG.getContext(), SimpleSize*2); in visitMULHU()
2042 N0 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N0); in visitMULHU()
2043 N1 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N1); in visitMULHU()
2044 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHU()
2045 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHU()
2046 DAG.getConstant(SimpleSize, getShiftAmountTy(N1.getValueType()))); in visitMULHU()
2047 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHU()
2065 SDValue Res = DAG.getNode(LoOp, N->getDebugLoc(), N->getValueType(0), in SimplifyNodeWithTwoResults()
2075 SDValue Res = DAG.getNode(HiOp, N->getDebugLoc(), N->getValueType(1), in SimplifyNodeWithTwoResults()
2086 SDValue Lo = DAG.getNode(LoOp, N->getDebugLoc(), N->getValueType(0), in SimplifyNodeWithTwoResults()
2097 SDValue Hi = DAG.getNode(HiOp, N->getDebugLoc(), N->getValueType(1), in SimplifyNodeWithTwoResults()
2122 EVT NewVT = EVT::getIntegerVT(*DAG.getContext(), SimpleSize*2); in visitSMUL_LOHI()
2124 SDValue Lo = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(0)); in visitSMUL_LOHI()
2125 SDValue Hi = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(1)); in visitSMUL_LOHI()
2126 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitSMUL_LOHI()
2128 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitSMUL_LOHI()
2129 DAG.getConstant(SimpleSize, getShiftAmountTy(Lo.getValueType()))); in visitSMUL_LOHI()
2130 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitSMUL_LOHI()
2132 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitSMUL_LOHI()
2152 EVT NewVT = EVT::getIntegerVT(*DAG.getContext(), SimpleSize*2); in visitUMUL_LOHI()
2154 SDValue Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(0)); in visitUMUL_LOHI()
2155 SDValue Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(1)); in visitUMUL_LOHI()
2156 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitUMUL_LOHI()
2158 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitUMUL_LOHI()
2159 DAG.getConstant(SimpleSize, getShiftAmountTy(Lo.getValueType()))); in visitUMUL_LOHI()
2160 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitUMUL_LOHI()
2162 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitUMUL_LOHI()
2174 return DAG.getNode(ISD::SADDO, N->getDebugLoc(), N->getVTList(), in visitSMULO()
2184 return DAG.getNode(ISD::UADDO, N->getDebugLoc(), N->getVTList(), in visitUMULO()
2235 SDValue ORNode = DAG.getNode(N->getOpcode(), N0.getDebugLoc(), in SimplifyBinOpWithSameOpcodeHands()
2239 return DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, ORNode); in SimplifyBinOpWithSameOpcodeHands()
2249 SDValue ORNode = DAG.getNode(N->getOpcode(), N0.getDebugLoc(), in SimplifyBinOpWithSameOpcodeHands()
2253 return DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, in SimplifyBinOpWithSameOpcodeHands()
2277 return DAG.getConstant(0, VT); in visitAND()
2280 return DAG.FoldConstantArithmetic(ISD::AND, VT, N0C, N1C); in visitAND()
2283 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N1, N0); in visitAND()
2288 if (N1C && DAG.MaskedValueIsZero(SDValue(N, 0), in visitAND()
2290 return DAG.getConstant(0, VT); in visitAND()
2305 if (DAG.MaskedValueIsZero(N0Op0, Mask)) { in visitAND()
2306 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), in visitAND()
2328 SDValue ORNode = DAG.getNode(ISD::OR, N0.getDebugLoc(), in visitAND()
2331 return DAG.getSetCC(N->getDebugLoc(), VT, ORNode, LR, Op1); in visitAND()
2335 SDValue ANDNode = DAG.getNode(ISD::AND, N0.getDebugLoc(), in visitAND()
2338 return DAG.getSetCC(N->getDebugLoc(), VT, ANDNode, LR, Op1); in visitAND()
2342 SDValue ORNode = DAG.getNode(ISD::OR, N0.getDebugLoc(), in visitAND()
2345 return DAG.getSetCC(N->getDebugLoc(), VT, ORNode, LR, Op1); in visitAND()
2358 return DAG.getSetCC(N->getDebugLoc(), N0.getValueType(), in visitAND()
2382 if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth, in visitAND()
2386 SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT, in visitAND()
2404 if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth, in visitAND()
2408 SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT, in visitAND()
2434 EVT ExtVT = EVT::getIntegerVT(*DAG.getContext(), ActiveBits); in visitAND()
2442 DAG.getExtLoad(ISD::ZEXTLOAD, LN0->getDebugLoc(), LoadResultTy, in visitAND()
2469 NewPtr = DAG.getNode(ISD::ADD, LN0->getDebugLoc(), PtrType, in visitAND()
2470 NewPtr, DAG.getConstant(PtrOff, PtrType)); in visitAND()
2478 DAG.getExtLoad(ISD::ZEXTLOAD, LN0->getDebugLoc(), LoadResultTy, in visitAND()
2580 !DAG.MaskedValueIsZero(N10, APInt::getHighBitsSet(OpSizeInBits, 16))) in MatchBSwapHWordLow()
2583 SDValue Res = DAG.getNode(ISD::BSWAP, N->getDebugLoc(), VT, N00); in MatchBSwapHWordLow()
2585 Res = DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, Res, in MatchBSwapHWordLow()
2586 DAG.getConstant(OpSizeInBits-16, getShiftAmountTy(VT))); in MatchBSwapHWordLow()
2717 SDValue BSwap = DAG.getNode(ISD::BSWAP, N->getDebugLoc(), VT, in MatchBSwapHWord()
2722 SDValue ShAmt = DAG.getConstant(16, getShiftAmountTy(VT)); in MatchBSwapHWord()
2724 return DAG.getNode(ISD::ROTL, N->getDebugLoc(), VT, BSwap, ShAmt); in MatchBSwapHWord()
2726 return DAG.getNode(ISD::ROTR, N->getDebugLoc(), VT, BSwap, ShAmt); in MatchBSwapHWord()
2727 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, in MatchBSwapHWord()
2728 DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, BSwap, ShAmt), in MatchBSwapHWord()
2729 DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, BSwap, ShAmt)); in MatchBSwapHWord()
2750 return DAG.getConstant(APInt::getAllOnesValue(EltVT.getSizeInBits()), VT); in visitOR()
2754 return DAG.FoldConstantArithmetic(ISD::OR, VT, N0C, N1C); in visitOR()
2757 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, N1, N0); in visitOR()
2765 if (N1C && DAG.MaskedValueIsZero(N0, ~N1C->getAPIntValue())) in visitOR()
2786 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitOR()
2787 DAG.getNode(ISD::OR, N0.getDebugLoc(), VT, in visitOR()
2789 DAG.FoldConstantArithmetic(ISD::OR, VT, N1C, C1)); in visitOR()
2802 SDValue ORNode = DAG.getNode(ISD::OR, LR.getDebugLoc(), in visitOR()
2805 return DAG.getSetCC(N->getDebugLoc(), VT, ORNode, LR, Op1); in visitOR()
2811 SDValue ANDNode = DAG.getNode(ISD::AND, LR.getDebugLoc(), in visitOR()
2814 return DAG.getSetCC(N->getDebugLoc(), VT, ANDNode, LR, Op1); in visitOR()
2827 return DAG.getSetCC(N->getDebugLoc(), N0.getValueType(), in visitOR()
2852 if (DAG.MaskedValueIsZero(N0.getOperand(0), RHSMask&~LHSMask) && in visitOR()
2853 DAG.MaskedValueIsZero(N1.getOperand(0), LHSMask&~RHSMask)) { in visitOR()
2854 SDValue X = DAG.getNode(ISD::OR, N0.getDebugLoc(), VT, in visitOR()
2856 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, X, in visitOR()
2857 DAG.getConstant(LHSMask | RHSMask, VT)); in visitOR()
2945 Rot = DAG.getNode(ISD::ROTL, DL, VT, LHSShiftArg, LHSShiftAmt); in MatchRotate()
2947 Rot = DAG.getNode(ISD::ROTR, DL, VT, LHSShiftArg, RHSShiftAmt); in MatchRotate()
2962 Rot = DAG.getNode(ISD::AND, DL, VT, Rot, DAG.getConstant(Mask, VT)); in MatchRotate()
2981 return DAG.getNode(ISD::ROTL, DL, VT, in MatchRotate()
2984 return DAG.getNode(ISD::ROTR, DL, VT, in MatchRotate()
2998 return DAG.getNode(ISD::ROTR, DL, VT, in MatchRotate()
3001 return DAG.getNode(ISD::ROTL, DL, VT, in MatchRotate()
3027 return DAG.getNode(HasROTL ? ISD::ROTL : ISD::ROTR, DL, VT, in MatchRotate()
3041 return DAG.getNode(HasROTR ? ISD::ROTR : ISD::ROTL, DL, VT, in MatchRotate()
3068 return DAG.getConstant(0, VT); in visitXOR()
3076 return DAG.FoldConstantArithmetic(ISD::XOR, VT, N0C, N1C); in visitXOR()
3079 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, N1, N0); in visitXOR()
3099 return DAG.getSetCC(N->getDebugLoc(), VT, LHS, RHS, NotCC); in visitXOR()
3101 return DAG.getSelectCC(N->getDebugLoc(), LHS, RHS, N0.getOperand(2), in visitXOR()
3112 V = DAG.getNode(ISD::XOR, N0.getDebugLoc(), V.getValueType(), V, in visitXOR()
3113 DAG.getConstant(1, V.getValueType())); in visitXOR()
3115 return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, V); in visitXOR()
3124 LHS = DAG.getNode(ISD::XOR, LHS.getDebugLoc(), VT, LHS, N1); // LHS = ~LHS in visitXOR()
3125 RHS = DAG.getNode(ISD::XOR, RHS.getDebugLoc(), VT, RHS, N1); // RHS = ~RHS in visitXOR()
3127 return DAG.getNode(NewOpcode, N->getDebugLoc(), VT, LHS, RHS); in visitXOR()
3136 LHS = DAG.getNode(ISD::XOR, LHS.getDebugLoc(), VT, LHS, N1); // LHS = ~LHS in visitXOR()
3137 RHS = DAG.getNode(ISD::XOR, RHS.getDebugLoc(), VT, RHS, N1); // RHS = ~RHS in visitXOR()
3139 return DAG.getNode(NewOpcode, N->getDebugLoc(), VT, LHS, RHS); in visitXOR()
3147 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, N0.getOperand(1), in visitXOR()
3148 DAG.getConstant(N1C->getAPIntValue() ^ in visitXOR()
3151 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, N0.getOperand(0), in visitXOR()
3152 DAG.getConstant(N1C->getAPIntValue() ^ in visitXOR()
3157 return tryFoldToZero(N->getDebugLoc(), TLI, VT, DAG, LegalOperations); in visitXOR()
3230 SDValue NewRHS = DAG.getNode(N->getOpcode(), LHS->getOperand(1).getDebugLoc(), in visitShiftByConstant()
3235 SDValue NewShift = DAG.getNode(N->getOpcode(), in visitShiftByConstant()
3240 return DAG.getNode(LHS->getOpcode(), N->getDebugLoc(), VT, NewShift, NewRHS); in visitShiftByConstant()
3253 return DAG.FoldConstantArithmetic(ISD::SHL, VT, N0C, N1C); in visitSHL()
3259 return DAG.getUNDEF(VT); in visitSHL()
3265 return DAG.getConstant(0, VT); in visitSHL()
3267 if (DAG.MaskedValueIsZero(SDValue(N, 0), in visitSHL()
3269 return DAG.getConstant(0, VT); in visitSHL()
3280 return DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0, in visitSHL()
3281 DAG.getNode(ISD::AND, N->getDebugLoc(), TruncVT, in visitSHL()
3282 DAG.getNode(ISD::TRUNCATE, in visitSHL()
3285 DAG.getConstant(TruncC, TruncVT))); in visitSHL()
3298 return DAG.getConstant(0, VT); in visitSHL()
3299 return DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0.getOperand(0), in visitSHL()
3300 DAG.getConstant(c1 + c2, N1.getValueType())); in visitSHL()
3320 return DAG.getConstant(0, VT); in visitSHL()
3321 return DAG.getNode(ISD::SHL, N0->getDebugLoc(), VT, in visitSHL()
3322 DAG.getNode(N0.getOpcode(), N0->getDebugLoc(), VT, in visitSHL()
3324 DAG.getConstant(c1 + c2, N1.getValueType())); in visitSHL()
3340 Shift = DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, N0.getOperand(0), in visitSHL()
3341 DAG.getConstant(c2-c1, N1.getValueType())); in visitSHL()
3344 Shift = DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0.getOperand(0), in visitSHL()
3345 DAG.getConstant(c1-c2, N1.getValueType())); in visitSHL()
3347 return DAG.getNode(ISD::AND, N0.getDebugLoc(), VT, Shift, in visitSHL()
3348 DAG.getConstant(Mask, VT)); in visitSHL()
3354 DAG.getConstant(APInt::getHighBitsSet(VT.getSizeInBits(), in visitSHL()
3358 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0.getOperand(0), in visitSHL()
3381 return DAG.FoldConstantArithmetic(ISD::SRA, VT, N0C, N1C); in visitSRA()
3390 return DAG.getUNDEF(VT); in visitSRA()
3398 EVT ExtVT = EVT::getIntegerVT(*DAG.getContext(), LowBits); in visitSRA()
3400 ExtVT = EVT::getVectorVT(*DAG.getContext(), in visitSRA()
3404 return DAG.getNode(ISD::SIGN_EXTEND_INREG, N->getDebugLoc(), VT, in visitSRA()
3405 N0.getOperand(0), DAG.getValueType(ExtVT)); in visitSRA()
3413 return DAG.getNode(ISD::SRA, N->getDebugLoc(), VT, N0.getOperand(0), in visitSRA()
3414 DAG.getConstant(Sum, N1C->getValueType(0))); in visitSRA()
3429 EVT::getIntegerVT(*DAG.getContext(), in visitSRA()
3443 SDValue Amt = DAG.getConstant(ShiftAmt, in visitSRA()
3445 SDValue Shift = DAG.getNode(ISD::SRL, N0.getDebugLoc(), VT, in visitSRA()
3447 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), TruncVT, in visitSRA()
3449 return DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), in visitSRA()
3465 return DAG.getNode(ISD::SRA, N->getDebugLoc(), VT, N0, in visitSRA()
3466 DAG.getNode(ISD::AND, N->getDebugLoc(), in visitSRA()
3468 DAG.getNode(ISD::TRUNCATE, in visitSRA()
3471 DAG.getConstant(TruncC, TruncVT))); in visitSRA()
3490 DAG.getConstant(LargeShiftAmt->getZExtValue() + N1C->getZExtValue(), in visitSRA()
3492 SDValue SRA = DAG.getNode(ISD::SRA, N->getDebugLoc(), LargeVT, in visitSRA()
3494 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, SRA); in visitSRA()
3504 if (DAG.SignBitIsZero(N0)) in visitSRA()
3505 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0, N1); in visitSRA()
3526 return DAG.FoldConstantArithmetic(ISD::SRL, VT, N0C, N1C); in visitSRL()
3532 return DAG.getUNDEF(VT); in visitSRL()
3537 if (N1C && DAG.MaskedValueIsZero(SDValue(N, 0), in visitSRL()
3539 return DAG.getConstant(0, VT); in visitSRL()
3547 return DAG.getConstant(0, VT); in visitSRL()
3548 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0.getOperand(0), in visitSRL()
3549 DAG.getConstant(c1 + c2, N1.getValueType())); in visitSRL()
3565 return DAG.getConstant(0, VT); in visitSRL()
3566 return DAG.getNode(ISD::TRUNCATE, N0->getDebugLoc(), VT, in visitSRL()
3567 DAG.getNode(ISD::SRL, N0->getDebugLoc(), InnerShiftVT, in visitSRL()
3569 DAG.getConstant(c1 + c2, ShiftCountVT))); in visitSRL()
3577 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0.getOperand(0), in visitSRL()
3578 DAG.getConstant(~0ULL >> ShAmt, VT)); in visitSRL()
3587 return DAG.getUNDEF(VT); in visitSRL()
3591 SDValue SmallShift = DAG.getNode(ISD::SRL, N0.getDebugLoc(), SmallVT, in visitSRL()
3593 DAG.getConstant(ShiftAmt, getShiftAmountTy(SmallVT))); in visitSRL()
3595 return DAG.getNode(ISD::ANY_EXTEND, N->getDebugLoc(), VT, SmallShift); in visitSRL()
3603 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0.getOperand(0), N1); in visitSRL()
3611 DAG.ComputeMaskedBits(N0.getOperand(0), Mask, KnownZero, KnownOne); in visitSRL()
3615 if (KnownOne.getBoolValue()) return DAG.getConstant(0, VT); in visitSRL()
3620 if (UnknownBits == 0) return DAG.getConstant(1, VT); in visitSRL()
3632 Op = DAG.getNode(ISD::SRL, N0.getDebugLoc(), VT, Op, in visitSRL()
3633 DAG.getConstant(ShAmt, getShiftAmountTy(Op.getValueType()))); in visitSRL()
3637 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, in visitSRL()
3638 Op, DAG.getConstant(1, VT)); in visitSRL()
3652 return DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, N0, in visitSRL()
3653 DAG.getNode(ISD::AND, N->getDebugLoc(), in visitSRL()
3655 DAG.getNode(ISD::TRUNCATE, in visitSRL()
3658 DAG.getConstant(TruncC, TruncVT))); in visitSRL()
3716 return DAG.getNode(ISD::CTLZ, N->getDebugLoc(), VT, N0); in visitCTLZ()
3726 return DAG.getNode(ISD::CTTZ, N->getDebugLoc(), VT, N0); in visitCTTZ()
3736 return DAG.getNode(ISD::CTPOP, N->getDebugLoc(), VT, N0); in visitCTPOP()
3761 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, N0, N2); in visitSELECT()
3770 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT0, in visitSELECT()
3771 N0, DAG.getConstant(1, VT0)); in visitSELECT()
3772 XORNode = DAG.getNode(ISD::XOR, N0.getDebugLoc(), VT0, in visitSELECT()
3773 N0, DAG.getConstant(1, VT0)); in visitSELECT()
3776 return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, XORNode); in visitSELECT()
3777 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, XORNode); in visitSELECT()
3781 SDValue NOTNode = DAG.getNOT(N0.getDebugLoc(), N0, VT); in visitSELECT()
3783 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, NOTNode, N2); in visitSELECT()
3787 SDValue NOTNode = DAG.getNOT(N0.getDebugLoc(), N0, VT); in visitSELECT()
3789 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, NOTNode, N1); in visitSELECT()
3793 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0, N1); in visitSELECT()
3797 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, N0, N2); in visitSELECT()
3801 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, N0, N1); in visitSELECT()
3815 return DAG.getNode(ISD::SELECT_CC, N->getDebugLoc(), VT, in visitSELECT()
3850 return DAG.getNode(ISD::SELECT_CC, N->getDebugLoc(), N2.getValueType(), in visitSELECT_CC()
3945 Ops.push_back(DAG.getNode(ExtType, DL, ExtLoad->getValueType(0), SOp)); in ExtendSetCCUses()
3949 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0), in ExtendSetCCUses()
3960 return DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), VT, N0); in visitSIGN_EXTEND()
3965 return DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), VT, in visitSIGN_EXTEND()
3988 unsigned NumSignBits = DAG.ComputeNumSignBits(Op); in visitSIGN_EXTEND()
3999 return DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), VT, Op); in visitSIGN_EXTEND()
4004 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, Op); in visitSIGN_EXTEND()
4011 Op = DAG.getNode(ISD::ANY_EXTEND, N0.getDebugLoc(), VT, Op); in visitSIGN_EXTEND()
4013 Op = DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), VT, Op); in visitSIGN_EXTEND()
4014 return DAG.getNode(ISD::SIGN_EXTEND_INREG, N->getDebugLoc(), VT, Op, in visitSIGN_EXTEND()
4015 DAG.getValueType(N0.getValueType())); in visitSIGN_EXTEND()
4032 SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, N->getDebugLoc(), VT, in visitSIGN_EXTEND()
4039 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), in visitSIGN_EXTEND()
4056 SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, N->getDebugLoc(), VT, in visitSIGN_EXTEND()
4064 DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), in visitSIGN_EXTEND()
4087 SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, LN0->getDebugLoc(), VT, in visitSIGN_EXTEND()
4096 SDValue And = DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, in visitSIGN_EXTEND()
4097 ExtLoad, DAG.getConstant(Mask, VT)); in visitSIGN_EXTEND()
4098 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, in visitSIGN_EXTEND()
4121 return DAG.getVSetCC(N->getDebugLoc(), VT, N0.getOperand(0), in visitSIGN_EXTEND()
4129 EVT::getIntegerVT(*DAG.getContext(), in visitSIGN_EXTEND()
4132 EVT::getVectorVT(*DAG.getContext(), MatchingElementType, in visitSIGN_EXTEND()
4135 DAG.getVSetCC(N->getDebugLoc(), MatchingVectorType, N0.getOperand(0), in visitSIGN_EXTEND()
4138 return DAG.getSExtOrTrunc(VsetCC, N->getDebugLoc(), VT); in visitSIGN_EXTEND()
4145 DAG.getConstant(APInt::getAllOnesValue(ElementWidth), VT); in visitSIGN_EXTEND()
4148 NegOne, DAG.getConstant(0, VT), in visitSIGN_EXTEND()
4153 return DAG.getNode(ISD::SELECT, N->getDebugLoc(), VT, in visitSIGN_EXTEND()
4154 DAG.getSetCC(N->getDebugLoc(), in visitSIGN_EXTEND()
4158 NegOne, DAG.getConstant(0, VT)); in visitSIGN_EXTEND()
4163 DAG.SignBitIsZero(N0)) in visitSIGN_EXTEND()
4164 return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, N0); in visitSIGN_EXTEND()
4175 return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, N0); in visitZERO_EXTEND()
4179 return DAG.getNode(ISD::ZERO_EXTEND, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4216 Op = DAG.getNode(ISD::ANY_EXTEND, N->getDebugLoc(), VT, Op); in visitZERO_EXTEND()
4218 Op = DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, Op); in visitZERO_EXTEND()
4220 return DAG.getZeroExtendInReg(Op, N->getDebugLoc(), in visitZERO_EXTEND()
4234 X = DAG.getNode(ISD::ANY_EXTEND, X.getDebugLoc(), VT, X); in visitZERO_EXTEND()
4236 X = DAG.getNode(ISD::TRUNCATE, X.getDebugLoc(), VT, X); in visitZERO_EXTEND()
4240 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4241 X, DAG.getConstant(Mask, VT)); in visitZERO_EXTEND()
4257 SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4264 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), in visitZERO_EXTEND()
4290 SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, LN0->getDebugLoc(), VT, in visitZERO_EXTEND()
4299 SDValue And = DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, in visitZERO_EXTEND()
4300 ExtLoad, DAG.getConstant(Mask, VT)); in visitZERO_EXTEND()
4301 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, in visitZERO_EXTEND()
4321 SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4329 DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), N0.getValueType(), in visitZERO_EXTEND()
4343 DAG.getConstant(1, EltVT)); in visitZERO_EXTEND()
4350 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4351 DAG.getVSetCC(N->getDebugLoc(), VT, N0.getOperand(0), in visitZERO_EXTEND()
4354 DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4361 EVT::getIntegerVT(*DAG.getContext(), in visitZERO_EXTEND()
4364 EVT::getVectorVT(*DAG.getContext(), MatchingElementType, in visitZERO_EXTEND()
4367 DAG.getVSetCC(N->getDebugLoc(), MatchingVectorType, N0.getOperand(0), in visitZERO_EXTEND()
4370 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4371 DAG.getSExtOrTrunc(VsetCC, N->getDebugLoc(), VT), in visitZERO_EXTEND()
4372 DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), VT, in visitZERO_EXTEND()
4379 DAG.getConstant(1, VT), DAG.getConstant(0, VT), in visitZERO_EXTEND()
4405 ShAmt = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, ShAmt); in visitZERO_EXTEND()
4407 return DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
4408 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)), in visitZERO_EXTEND()
4421 return DAG.getNode(ISD::ANY_EXTEND, N->getDebugLoc(), VT, N0); in visitANY_EXTEND()
4428 return DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, N0.getOperand(0)); in visitANY_EXTEND()
4451 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, TruncOp); in visitANY_EXTEND()
4452 return DAG.getNode(ISD::ANY_EXTEND, N->getDebugLoc(), VT, TruncOp); in visitANY_EXTEND()
4464 X = DAG.getNode(ISD::ANY_EXTEND, N->getDebugLoc(), VT, X); in visitANY_EXTEND()
4466 X = DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, X); in visitANY_EXTEND()
4470 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitANY_EXTEND()
4471 X, DAG.getConstant(Mask, VT)); in visitANY_EXTEND()
4487 SDValue ExtLoad = DAG.getExtLoad(ISD::EXTLOAD, N->getDebugLoc(), VT, in visitANY_EXTEND()
4494 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), in visitANY_EXTEND()
4511 SDValue ExtLoad = DAG.getExtLoad(LN0->getExtensionType(), N->getDebugLoc(), in visitANY_EXTEND()
4518 DAG.getNode(ISD::TRUNCATE, N0.getDebugLoc(), in visitANY_EXTEND()
4535 return DAG.getVSetCC(N->getDebugLoc(), VT, N0.getOperand(0), in visitANY_EXTEND()
4543 EVT::getIntegerVT(*DAG.getContext(), in visitANY_EXTEND()
4546 EVT::getVectorVT(*DAG.getContext(), MatchingElementType, in visitANY_EXTEND()
4549 DAG.getVSetCC(N->getDebugLoc(), MatchingVectorType, N0.getOperand(0), in visitANY_EXTEND()
4552 return DAG.getSExtOrTrunc(VsetCC, N->getDebugLoc(), VT); in visitANY_EXTEND()
4559 DAG.getConstant(1, VT), DAG.getConstant(0, VT), in visitANY_EXTEND()
4577 if (DAG.MaskedValueIsZero(V.getOperand(0), Mask)) in GetDemandedBits()
4579 if (DAG.MaskedValueIsZero(V.getOperand(1), Mask)) in GetDemandedBits()
4595 return DAG.getNode(ISD::SRL, V.getDebugLoc(), V.getValueType(), in GetDemandedBits()
4630 ExtVT = EVT::getIntegerVT(*DAG.getContext(), in ReduceLoadWidth()
4703 SDValue NewPtr = DAG.getNode(ISD::ADD, LN0->getDebugLoc(), in ReduceLoadWidth()
4705 DAG.getConstant(PtrOff, PtrType)); in ReduceLoadWidth()
4710 Load = DAG.getLoad(VT, N0.getDebugLoc(), LN0->getChain(), NewPtr, in ReduceLoadWidth()
4714 Load = DAG.getExtLoad(ExtType, N0.getDebugLoc(), VT, LN0->getChain(),NewPtr, in ReduceLoadWidth()
4721 DAG.ReplaceAllUsesOfValueWith(N0.getValue(1), Load.getValue(1), in ReduceLoadWidth()
4730 Result = DAG.getNode(ISD::SHL, N0.getDebugLoc(), VT, in ReduceLoadWidth()
4731 Result, DAG.getConstant(ShLeftAmt, ShImmTy)); in ReduceLoadWidth()
4748 return DAG.getNode(ISD::SIGN_EXTEND_INREG, N->getDebugLoc(), VT, N0, N1); in visitSIGN_EXTEND_INREG()
4751 if (DAG.ComputeNumSignBits(N0) >= VTBits-EVTBits+1) in visitSIGN_EXTEND_INREG()
4757 return DAG.getNode(ISD::SIGN_EXTEND_INREG, N->getDebugLoc(), VT, in visitSIGN_EXTEND_INREG()
4768 return DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), VT, N00, N1); in visitSIGN_EXTEND_INREG()
4772 if (DAG.MaskedValueIsZero(N0, APInt::getBitsSet(VTBits, EVTBits-1, EVTBits))) in visitSIGN_EXTEND_INREG()
4773 return DAG.getZeroExtendInReg(N0, N->getDebugLoc(), EVT); in visitSIGN_EXTEND_INREG()
4794 unsigned InSignBits = DAG.ComputeNumSignBits(N0.getOperand(0)); in visitSIGN_EXTEND_INREG()
4796 return DAG.getNode(ISD::SRA, N->getDebugLoc(), VT, in visitSIGN_EXTEND_INREG()
4808 SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, N->getDebugLoc(), VT, in visitSIGN_EXTEND_INREG()
4825 SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, N->getDebugLoc(), VT, in visitSIGN_EXTEND_INREG()
4841 return DAG.getNode(ISD::SIGN_EXTEND_INREG, N->getDebugLoc(), VT, in visitSIGN_EXTEND_INREG()
4857 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, N0); in visitTRUNCATE()
4860 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, N0.getOperand(0)); in visitTRUNCATE()
4867 return DAG.getNode(N0.getOpcode(), N->getDebugLoc(), VT, in visitTRUNCATE()
4871 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, N0.getOperand(0)); in visitTRUNCATE()
4888 return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, Shorter); in visitTRUNCATE()
4932 DAG.isConsecutiveLoad(LD2, LD1, LD1VT.getSizeInBits()/8, 1)) { in CombineConsecutiveLoads()
4935 getABITypeAlignment(VT.getTypeForEVT(*DAG.getContext())); in CombineConsecutiveLoads()
4939 return DAG.getLoad(VT, N->getDebugLoc(), LD1->getChain(), in CombineConsecutiveLoads()
4976 SDValue Res = DAG.getNode(ISD::BITCAST, N->getDebugLoc(), VT, N0); in visitBITCAST()
4987 DAG.DeleteNode(Res.getNode()); in visitBITCAST()
4993 return DAG.getNode(ISD::BITCAST, N->getDebugLoc(), VT, in visitBITCAST()
5004 getABITypeAlignment(VT.getTypeForEVT(*DAG.getContext())); in visitBITCAST()
5008 SDValue Load = DAG.getLoad(VT, N->getDebugLoc(), LN0->getChain(), in visitBITCAST()
5014 DAG.getNode(ISD::BITCAST, N0.getDebugLoc(), in visitBITCAST()
5026 SDValue NewConv = DAG.getNode(ISD::BITCAST, N0.getDebugLoc(), VT, in visitBITCAST()
5032 return DAG.getNode(ISD::XOR, N->getDebugLoc(), VT, in visitBITCAST()
5033 NewConv, DAG.getConstant(SignBit, VT)); in visitBITCAST()
5035 return DAG.getNode(ISD::AND, N->getDebugLoc(), VT, in visitBITCAST()
5036 NewConv, DAG.getConstant(~SignBit, VT)); in visitBITCAST()
5047 EVT IntXVT = EVT::getIntegerVT(*DAG.getContext(), OrigXWidth); in visitBITCAST()
5049 SDValue X = DAG.getNode(ISD::BITCAST, N0.getDebugLoc(), in visitBITCAST()
5056 X = DAG.getNode(ISD::SIGN_EXTEND, N->getDebugLoc(), VT, X); in visitBITCAST()
5061 X = DAG.getNode(ISD::SRL, X.getDebugLoc(), in visitBITCAST()
5063 DAG.getConstant(OrigXWidth-VTWidth, X.getValueType())); in visitBITCAST()
5065 X = DAG.getNode(ISD::TRUNCATE, X.getDebugLoc(), VT, X); in visitBITCAST()
5070 X = DAG.getNode(ISD::AND, X.getDebugLoc(), VT, in visitBITCAST()
5071 X, DAG.getConstant(SignBit, VT)); in visitBITCAST()
5074 SDValue Cst = DAG.getNode(ISD::BITCAST, N0.getDebugLoc(), in visitBITCAST()
5076 Cst = DAG.getNode(ISD::AND, Cst.getDebugLoc(), VT, in visitBITCAST()
5077 Cst, DAG.getConstant(~SignBit, VT)); in visitBITCAST()
5080 return DAG.getNode(ISD::OR, N->getDebugLoc(), VT, X, Cst); in visitBITCAST()
5115 EVT VT = EVT::getVectorVT(*DAG.getContext(), DstEltVT, in ConstantFoldBITCASTofBUILD_VECTOR()
5121 return DAG.getNode(ISD::SCALAR_TO_VECTOR, BV->getDebugLoc(), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
5122 DAG.getNode(ISD::BITCAST, BV->getDebugLoc(), in ConstantFoldBITCASTofBUILD_VECTOR()
5131 Op = DAG.getNode(ISD::TRUNCATE, BV->getDebugLoc(), SrcEltVT, Op); in ConstantFoldBITCASTofBUILD_VECTOR()
5132 Ops.push_back(DAG.getNode(ISD::BITCAST, BV->getDebugLoc(), in ConstantFoldBITCASTofBUILD_VECTOR()
5136 return DAG.getNode(ISD::BUILD_VECTOR, BV->getDebugLoc(), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
5147 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), SrcEltVT.getSizeInBits()); in ConstantFoldBITCASTofBUILD_VECTOR()
5156 EVT TmpVT = EVT::getIntegerVT(*DAG.getContext(), DstEltVT.getSizeInBits()); in ConstantFoldBITCASTofBUILD_VECTOR()
5187 Ops.push_back(DAG.getUNDEF(DstEltVT)); in ConstantFoldBITCASTofBUILD_VECTOR()
5189 Ops.push_back(DAG.getConstant(NewBits, DstEltVT)); in ConstantFoldBITCASTofBUILD_VECTOR()
5192 EVT VT = EVT::getVectorVT(*DAG.getContext(), DstEltVT, Ops.size()); in ConstantFoldBITCASTofBUILD_VECTOR()
5193 return DAG.getNode(ISD::BUILD_VECTOR, BV->getDebugLoc(), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
5201 EVT VT = EVT::getVectorVT(*DAG.getContext(), DstEltVT, in ConstantFoldBITCASTofBUILD_VECTOR()
5208 Ops.push_back(DAG.getUNDEF(DstEltVT)); in ConstantFoldBITCASTofBUILD_VECTOR()
5217 Ops.push_back(DAG.getConstant(ThisVal, DstEltVT)); in ConstantFoldBITCASTofBUILD_VECTOR()
5220 return DAG.getNode(ISD::SCALAR_TO_VECTOR, BV->getDebugLoc(), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
5230 return DAG.getNode(ISD::BUILD_VECTOR, BV->getDebugLoc(), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
5249 return DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, N0, N1); in visitFADD()
5252 return DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, N1, N0); in visitFADD()
5258 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N0, in visitFADD()
5259 GetNegatedExpression(N1, DAG, LegalOperations)); in visitFADD()
5262 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N1, in visitFADD()
5263 GetNegatedExpression(N0, DAG, LegalOperations)); in visitFADD()
5268 return DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, N0.getOperand(0), in visitFADD()
5269 DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, in visitFADD()
5290 return DAG.getNode(ISD::FSUB, N->getDebugLoc(), VT, N0, N1); in visitFSUB()
5297 return GetNegatedExpression(N1, DAG, LegalOperations); in visitFSUB()
5299 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT, N1); in visitFSUB()
5303 return DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, N0, in visitFSUB()
5304 GetNegatedExpression(N1, DAG, LegalOperations)); in visitFSUB()
5324 return DAG.getNode(ISD::FMUL, N->getDebugLoc(), VT, N0, N1); in visitFMUL()
5327 return DAG.getNode(ISD::FMUL, N->getDebugLoc(), VT, N1, N0); in visitFMUL()
5336 return DAG.getNode(ISD::FADD, N->getDebugLoc(), VT, N0, N0); in visitFMUL()
5340 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT, N0); in visitFMUL()
5348 return DAG.getNode(ISD::FMUL, N->getDebugLoc(), VT, in visitFMUL()
5349 GetNegatedExpression(N0, DAG, LegalOperations), in visitFMUL()
5350 GetNegatedExpression(N1, DAG, LegalOperations)); in visitFMUL()
5357 return DAG.getNode(ISD::FMUL, N->getDebugLoc(), VT, N0.getOperand(0), in visitFMUL()
5358 DAG.getNode(ISD::FMUL, N->getDebugLoc(), VT, in visitFMUL()
5379 return DAG.getNode(ISD::FDIV, N->getDebugLoc(), VT, N0, N1); in visitFDIV()
5388 return DAG.getNode(ISD::FDIV, N->getDebugLoc(), VT, in visitFDIV()
5389 GetNegatedExpression(N0, DAG, LegalOperations), in visitFDIV()
5390 GetNegatedExpression(N1, DAG, LegalOperations)); in visitFDIV()
5406 return DAG.getNode(ISD::FREM, N->getDebugLoc(), VT, N0, N1); in visitFREM()
5419 return DAG.getNode(ISD::FCOPYSIGN, N->getDebugLoc(), VT, N0, N1); in visitFCOPYSIGN()
5427 return DAG.getNode(ISD::FABS, N->getDebugLoc(), VT, N0); in visitFCOPYSIGN()
5430 return DAG.getNode(ISD::FNEG, N->getDebugLoc(), VT, in visitFCOPYSIGN()
5431 DAG.getNode(ISD::FABS, N0.getDebugLoc(), VT, N0)); in visitFCOPYSIGN()
5440 return DAG.getNode(ISD::FCOPYSIGN, N->getDebugLoc(), VT, in visitFCOPYSIGN()
5445 return DAG.getNode(ISD::FABS, N->getDebugLoc(), VT, N0); in visitFCOPYSIGN()
5449 return DAG.getNode(ISD::FCOPYSIGN, N->getDebugLoc(), VT, in visitFCOPYSIGN()
5455 return DAG.getNode(ISD::FCOPYSIGN, N->getDebugLoc(), VT, in visitFCOPYSIGN()
5472 return DAG.getNode(ISD::SINT_TO_FP, N->getDebugLoc(), VT, N0); in visitSINT_TO_FP()
5479 if (DAG.SignBitIsZero(N0)) in visitSINT_TO_FP()
5480 return DAG.getNode(ISD::UINT_TO_FP, N->getDebugLoc(), VT, N0); in visitSINT_TO_FP()
5497 return DAG.getNode(ISD::UINT_TO_FP, N->getDebugLoc(), VT, N0); in visitUINT_TO_FP()
5504 if (DAG.SignBitIsZero(N0)) in visitUINT_TO_FP()
5505 return DAG.getNode(ISD::SINT_TO_FP, N->getDebugLoc(), VT, N0); in visitUINT_TO_FP()
5518 return DAG.getNode(ISD::FP_TO_SINT, N->getDebugLoc(), VT, N0); in visitFP_TO_SINT()
5530 return DAG.getNode(ISD::FP_TO_UINT, N->getDebugLoc(), VT, N0); in visitFP_TO_UINT()
5543 return DAG.getNode(ISD::FP_ROUND, N->getDebugLoc(), VT, N0, N1); in visitFP_ROUND()
5554 return DAG.getNode(ISD::FP_ROUND, N->getDebugLoc(), VT, N0.getOperand(0), in visitFP_ROUND()
5555 DAG.getIntPtrConstant(IsTrunc)); in visitFP_ROUND()
5560 SDValue Tmp = DAG.getNode(ISD::FP_ROUND, N0.getDebugLoc(), VT, in visitFP_ROUND()
5563 return DAG.getNode(ISD::FCOPYSIGN, N->getDebugLoc(), VT, in visitFP_ROUND()
5578 SDValue Round = DAG.getConstantFP(*N0CFP->getConstantFPValue(), EVT); in visitFP_ROUND_INREG()
5579 return DAG.getNode(ISD::FP_EXTEND, N->getDebugLoc(), VT, Round); in visitFP_ROUND_INREG()
5597 return DAG.getNode(ISD::FP_EXTEND, N->getDebugLoc(), VT, N0); in visitFP_EXTEND()
5606 return DAG.getNode(ISD::FP_ROUND, N->getDebugLoc(), VT, in visitFP_EXTEND()
5608 return DAG.getNode(ISD::FP_EXTEND, N->getDebugLoc(), VT, In); in visitFP_EXTEND()
5616 SDValue ExtLoad = DAG.getExtLoad(ISD::EXTLOAD, N->getDebugLoc(), VT, in visitFP_EXTEND()
5624 DAG.getNode(ISD::FP_ROUND, N0.getDebugLoc(), in visitFP_EXTEND()
5625 N0.getValueType(), ExtLoad, DAG.getIntPtrConstant(1)), in visitFP_EXTEND()
5638 return GetNegatedExpression(N0, DAG, LegalOperations); in visitFNEG()
5649 Int = DAG.getNode(ISD::XOR, N0.getDebugLoc(), IntVT, Int, in visitFNEG()
5650 DAG.getConstant(APInt::getSignBit(IntVT.getSizeInBits()), IntVT)); in visitFNEG()
5652 return DAG.getNode(ISD::BITCAST, N->getDebugLoc(), in visitFNEG()
5667 return DAG.getNode(ISD::FABS, N->getDebugLoc(), VT, N0); in visitFABS()
5674 return DAG.getNode(ISD::FABS, N->getDebugLoc(), VT, N0.getOperand(0)); in visitFABS()
5684 Int = DAG.getNode(ISD::AND, N0.getDebugLoc(), IntVT, Int, in visitFABS()
5685 DAG.getConstant(~APInt::getSignBit(IntVT.getSizeInBits()), IntVT)); in visitFABS()
5687 return DAG.getNode(ISD::BITCAST, N->getDebugLoc(), in visitFABS()
5710 return DAG.getNode(ISD::BR_CC, N->getDebugLoc(), MVT::Other, in visitBRCOND()
5756 DAG.getSetCC(N->getDebugLoc(), in visitBRCOND()
5758 Op0, DAG.getConstant(0, Op0.getValueType()), in visitBRCOND()
5761 SDValue NewBRCond = DAG.getNode(ISD::BRCOND, N->getDebugLoc(), in visitBRCOND()
5769 DAG.DeleteNode(Trunc); in visitBRCOND()
5773 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes); in visitBRCOND()
5775 DAG.DeleteNode(N1.getNode()); in visitBRCOND()
5797 TheXor->dump(&DAG); in visitBRCOND()
5799 Tmp.getNode()->dump(&DAG); in visitBRCOND()
5802 DAG.ReplaceAllUsesOfValueWith(N1, Tmp, &DeadNodes); in visitBRCOND()
5804 DAG.DeleteNode(TheXor); in visitBRCOND()
5805 return DAG.getNode(ISD::BRCOND, N->getDebugLoc(), in visitBRCOND()
5822 SDValue SetCC = DAG.getSetCC(TheXor->getDebugLoc(), in visitBRCOND()
5828 DAG.ReplaceAllUsesOfValueWith(N1, SetCC, &DeadNodes); in visitBRCOND()
5830 DAG.DeleteNode(N1.getNode()); in visitBRCOND()
5831 return DAG.getNode(ISD::BRCOND, N->getDebugLoc(), in visitBRCOND()
5859 return DAG.getNode(ISD::BR_CC, N->getDebugLoc(), MVT::Other, in visitBR_CC()
5911 if (!TLI.getPreIndexedAddressParts(N, BasePtr, Offset, AM, DAG)) in CombineToPreIndexedLoadStore()
5965 Result = DAG.getIndexedLoad(SDValue(N,0), N->getDebugLoc(), in CombineToPreIndexedLoadStore()
5968 Result = DAG.getIndexedStore(SDValue(N,0), N->getDebugLoc(), in CombineToPreIndexedLoadStore()
5973 N->dump(&DAG); in CombineToPreIndexedLoadStore()
5975 Result.getNode()->dump(&DAG); in CombineToPreIndexedLoadStore()
5979 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Result.getValue(0), in CombineToPreIndexedLoadStore()
5981 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), Result.getValue(2), in CombineToPreIndexedLoadStore()
5984 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Result.getValue(1), in CombineToPreIndexedLoadStore()
5989 DAG.DeleteNode(N); in CombineToPreIndexedLoadStore()
5992 DAG.ReplaceAllUsesOfValueWith(Ptr, Result.getValue(isLoad ? 1 : 0), in CombineToPreIndexedLoadStore()
5995 DAG.DeleteNode(Ptr.getNode()); in CombineToPreIndexedLoadStore()
6046 if (TLI.getPostIndexedAddressParts(N, Op, BasePtr, Offset, AM, DAG)) { in CombineToPostIndexedLoadStore()
6096 ? DAG.getIndexedLoad(SDValue(N,0), N->getDebugLoc(), in CombineToPostIndexedLoadStore()
6098 : DAG.getIndexedStore(SDValue(N,0), N->getDebugLoc(), in CombineToPostIndexedLoadStore()
6103 N->dump(&DAG); in CombineToPostIndexedLoadStore()
6105 Result.getNode()->dump(&DAG); in CombineToPostIndexedLoadStore()
6109 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Result.getValue(0), in CombineToPostIndexedLoadStore()
6111 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), Result.getValue(2), in CombineToPostIndexedLoadStore()
6114 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Result.getValue(1), in CombineToPostIndexedLoadStore()
6119 DAG.DeleteNode(N); in CombineToPostIndexedLoadStore()
6122 DAG.ReplaceAllUsesOfValueWith(SDValue(Op, 0), in CombineToPostIndexedLoadStore()
6126 DAG.DeleteNode(Op); in CombineToPostIndexedLoadStore()
6154 N->dump(&DAG); in visitLOAD()
6156 Chain.getNode()->dump(&DAG); in visitLOAD()
6159 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), Chain, &DeadNodes); in visitLOAD()
6163 DAG.DeleteNode(N); in visitLOAD()
6172 SDValue Undef = DAG.getUNDEF(N->getValueType(0)); in visitLOAD()
6174 N->dump(&DAG); in visitLOAD()
6176 Undef.getNode()->dump(&DAG); in visitLOAD()
6179 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 0), Undef, &DeadNodes); in visitLOAD()
6180 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 1), in visitLOAD()
6181 DAG.getUNDEF(N->getValueType(1)), in visitLOAD()
6183 DAG.ReplaceAllUsesOfValueWith(SDValue(N, 2), Chain, &DeadNodes); in visitLOAD()
6185 DAG.DeleteNode(N); in visitLOAD()
6206 if (unsigned Align = DAG.InferPtrAlignment(Ptr)) { in visitLOAD()
6208 return DAG.getExtLoad(LD->getExtensionType(), N->getDebugLoc(), in visitLOAD()
6226 ReplLoad = DAG.getLoad(N->getValueType(0), LD->getDebugLoc(), in visitLOAD()
6231 ReplLoad = DAG.getExtLoad(LD->getExtensionType(), LD->getDebugLoc(), in visitLOAD()
6241 SDValue Token = DAG.getNode(ISD::TokenFactor, N->getDebugLoc(), in visitLOAD()
6344 SelectionDAG &DAG = DC->getDAG(); in ShrinkLoadReplaceStoreWithStore() local
6350 if (!DAG.MaskedValueIsZero(IVal, Mask)) return 0; in ShrinkLoadReplaceStoreWithStore()
6362 IVal = DAG.getNode(ISD::SRL, IVal->getDebugLoc(), IVal.getValueType(), IVal, in ShrinkLoadReplaceStoreWithStore()
6363 DAG.getConstant(ByteShift*8, in ShrinkLoadReplaceStoreWithStore()
6370 if (DAG.getTargetLoweringInfo().isLittleEndian()) in ShrinkLoadReplaceStoreWithStore()
6377 Ptr = DAG.getNode(ISD::ADD, IVal->getDebugLoc(), Ptr.getValueType(), in ShrinkLoadReplaceStoreWithStore()
6378 Ptr, DAG.getConstant(StOffset, Ptr.getValueType())); in ShrinkLoadReplaceStoreWithStore()
6383 IVal = DAG.getNode(ISD::TRUNCATE, IVal->getDebugLoc(), VT, IVal); in ShrinkLoadReplaceStoreWithStore()
6386 return DAG.getStore(St->getChain(), St->getDebugLoc(), IVal, Ptr, in ShrinkLoadReplaceStoreWithStore()
6456 EVT NewVT = EVT::getIntegerVT(*DAG.getContext(), NewBW); in ReduceLoadOpStoreWidth()
6461 NewVT = EVT::getIntegerVT(*DAG.getContext(), NewBW); in ReduceLoadOpStoreWidth()
6482 Type *NewVTTy = NewVT.getTypeForEVT(*DAG.getContext()); in ReduceLoadOpStoreWidth()
6486 SDValue NewPtr = DAG.getNode(ISD::ADD, LD->getDebugLoc(), in ReduceLoadOpStoreWidth()
6488 DAG.getConstant(PtrOff, Ptr.getValueType())); in ReduceLoadOpStoreWidth()
6489 SDValue NewLD = DAG.getLoad(NewVT, N0.getDebugLoc(), in ReduceLoadOpStoreWidth()
6494 SDValue NewVal = DAG.getNode(Opc, Value.getDebugLoc(), NewVT, NewLD, in ReduceLoadOpStoreWidth()
6495 DAG.getConstant(NewImm, NewVT)); in ReduceLoadOpStoreWidth()
6496 SDValue NewST = DAG.getStore(Chain, N->getDebugLoc(), in ReduceLoadOpStoreWidth()
6505 DAG.ReplaceAllUsesOfValueWith(N0.getValue(1), NewLD.getValue(1), in ReduceLoadOpStoreWidth()
6536 EVT IntVT = EVT::getIntegerVT(*DAG.getContext(), VT.getSizeInBits()); in TransformFPLoadStorePair()
6545 Type *IntVTTy = IntVT.getTypeForEVT(*DAG.getContext()); in TransformFPLoadStorePair()
6550 SDValue NewLD = DAG.getLoad(IntVT, Value.getDebugLoc(), in TransformFPLoadStorePair()
6555 SDValue NewST = DAG.getStore(NewLD.getValue(1), N->getDebugLoc(), in TransformFPLoadStorePair()
6563 DAG.ReplaceAllUsesOfValueWith(Value.getValue(1), NewLD.getValue(1), in TransformFPLoadStorePair()
6585 getABITypeAlignment(SVT.getTypeForEVT(*DAG.getContext())); in visitSTORE()
6589 return DAG.getStore(Chain, N->getDebugLoc(), Value.getOperand(0), in visitSTORE()
6615 Tmp = DAG.getConstant((uint32_t)CFP->getValueAPF(). in visitSTORE()
6617 return DAG.getStore(Chain, N->getDebugLoc(), Tmp, in visitSTORE()
6626 Tmp = DAG.getConstant(CFP->getValueAPF().bitcastToAPInt(). in visitSTORE()
6628 return DAG.getStore(Chain, N->getDebugLoc(), Tmp, in visitSTORE()
6639 SDValue Lo = DAG.getConstant(Val & 0xFFFFFFFF, MVT::i32); in visitSTORE()
6640 SDValue Hi = DAG.getConstant(Val >> 32, MVT::i32); in visitSTORE()
6647 SDValue St0 = DAG.getStore(Chain, ST->getDebugLoc(), Lo, in visitSTORE()
6651 Ptr = DAG.getNode(ISD::ADD, N->getDebugLoc(), Ptr.getValueType(), Ptr, in visitSTORE()
6652 DAG.getConstant(4, Ptr.getValueType())); in visitSTORE()
6654 SDValue St1 = DAG.getStore(Chain, ST->getDebugLoc(), Hi, in visitSTORE()
6658 return DAG.getNode(ISD::TokenFactor, N->getDebugLoc(), MVT::Other, in visitSTORE()
6669 if (unsigned Align = DAG.InferPtrAlignment(Ptr)) { in visitSTORE()
6671 return DAG.getTruncStore(Chain, N->getDebugLoc(), Value, in visitSTORE()
6693 ReplStore = DAG.getTruncStore(BetterChain, N->getDebugLoc(), Value, Ptr, in visitSTORE()
6698 ReplStore = DAG.getStore(BetterChain, N->getDebugLoc(), Value, Ptr, in visitSTORE()
6705 SDValue Token = DAG.getNode(ISD::TokenFactor, N->getDebugLoc(), in visitSTORE()
6733 return DAG.getTruncStore(Chain, N->getDebugLoc(), Shorter, in visitSTORE()
6766 return DAG.getTruncStore(Chain, N->getDebugLoc(), Value.getOperand(0), in visitSTORE()
6798 return DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), in visitINSERT_VECTOR_ELT()
6807 SmallVector<SDValue, 8> Ops(NElts, DAG.getUNDEF(EltVT)); in visitINSERT_VECTOR_ELT()
6812 return DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), in visitINSERT_VECTOR_ELT()
6830 return DAG.getSExtOrTrunc(InOp, InVec.getDebugLoc(), NVT); in visitEXTRACT_VECTOR_ELT()
6899 return DAG.getUNDEF(LN0->getBasePtr().getValueType()); in visitEXTRACT_VECTOR_ELT()
6907 ->getABITypeAlignment(LVT.getTypeForEVT(*DAG.getContext())); in visitEXTRACT_VECTOR_ELT()
6923 NewPtr = DAG.getNode(ISD::ADD, N->getDebugLoc(), PtrType, NewPtr, in visitEXTRACT_VECTOR_ELT()
6924 DAG.getConstant(PtrOff, PtrType)); in visitEXTRACT_VECTOR_ELT()
6927 return DAG.getLoad(LVT, N->getDebugLoc(), LN0->getChain(), NewPtr, in visitEXTRACT_VECTOR_ELT()
7011 Ops[1] = VecIn2.getNode() ? VecIn2 : DAG.getUNDEF(VT); in visitBUILD_VECTOR()
7012 return DAG.getVectorShuffle(VT, N->getDebugLoc(), Ops[0], Ops[1], &Mask[0]); in visitBUILD_VECTOR()
7115 return SDValue(DAG.UpdateNodeOperands(atomic.getNode(), in visitMEMBARRIER()
7130 return SDValue(DAG.UpdateNodeOperands(atomic.getNode(), in visitMEMBARRIER()
7174 DAG.getConstant(0, EltVT)); in XformToShuffleWithZero()
7175 SDValue Zero = DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), in XformToShuffleWithZero()
7177 LHS = DAG.getNode(ISD::BITCAST, dl, RVT, LHS); in XformToShuffleWithZero()
7178 SDValue Shuf = DAG.getVectorShuffle(RVT, dl, LHS, Zero, &Indices[0]); in XformToShuffleWithZero()
7179 return DAG.getNode(ISD::BITCAST, dl, VT, Shuf); in XformToShuffleWithZero()
7231 SDValue FoldOp = DAG.getNode(N->getOpcode(), LHS.getDebugLoc(), VT, in SimplifyVBinOp()
7242 return DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), in SimplifyVBinOp()
7263 SDValue SETCC = DAG.getNode(ISD::SETCC, N0.getDebugLoc(), in SimplifySelect()
7268 return DAG.getNode(ISD::SELECT, SCC.getDebugLoc(), SCC.getValueType(), in SimplifySelect()
7332 Addr = DAG.getNode(ISD::SELECT, TheSelect->getDebugLoc(), in SimplifySelectOps()
7346 Addr = DAG.getNode(ISD::SELECT_CC, TheSelect->getDebugLoc(), in SimplifySelectOps()
7356 Load = DAG.getLoad(TheSelect->getValueType(0), in SimplifySelectOps()
7363 Load = DAG.getExtLoad(LLD->getExtensionType() == ISD::EXTLOAD ? in SimplifySelectOps()
7420 return DAG.getNode(ISD::FABS, DL, VT, N0); in SimplifySelectCC()
7426 return DAG.getNode(ISD::FABS, DL, VT, N3); in SimplifySelectCC()
7455 SDValue CPIdx = DAG.getConstantPool(CA, TLI.getPointerTy(), in SimplifySelectCC()
7461 SDValue Zero = DAG.getIntPtrConstant(0); in SimplifySelectCC()
7463 SDValue One = DAG.getIntPtrConstant(EltSize); in SimplifySelectCC()
7465 SDValue Cond = DAG.getSetCC(DL, in SimplifySelectCC()
7468 SDValue CstOffset = DAG.getNode(ISD::SELECT, DL, Zero.getValueType(), in SimplifySelectCC()
7470 CPIdx = DAG.getNode(ISD::ADD, DL, TLI.getPointerTy(), CPIdx, in SimplifySelectCC()
7472 return DAG.getLoad(TV->getValueType(0), DL, DAG.getEntryNode(), CPIdx, in SimplifySelectCC()
7494 SDValue ShCt = DAG.getConstant(ShCtV, in SimplifySelectCC()
7496 SDValue Shift = DAG.getNode(ISD::SRL, N0.getDebugLoc(), in SimplifySelectCC()
7501 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in SimplifySelectCC()
7505 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in SimplifySelectCC()
7508 SDValue Shift = DAG.getNode(ISD::SRA, N0.getDebugLoc(), in SimplifySelectCC()
7510 DAG.getConstant(XType.getSizeInBits()-1, in SimplifySelectCC()
7515 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in SimplifySelectCC()
7519 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in SimplifySelectCC()
7539 DAG.getConstant(AndMask.countLeadingZeros(), in SimplifySelectCC()
7541 SDValue Shl = DAG.getNode(ISD::SHL, N0.getDebugLoc(), VT, AndLHS, ShlAmt); in SimplifySelectCC()
7546 DAG.getConstant(AndMask.getBitWidth()-1, in SimplifySelectCC()
7548 SDValue Shr = DAG.getNode(ISD::SRA, N0.getDebugLoc(), VT, Shl, ShrAmt); in SimplifySelectCC()
7550 return DAG.getNode(ISD::AND, DL, VT, Shr, N3); in SimplifySelectCC()
7569 SCC = DAG.getSetCC(DL, TLI.getSetCCResultType(N0.getValueType()), in SimplifySelectCC()
7572 Temp = DAG.getZeroExtendInReg(SCC, N2.getDebugLoc(), N2.getValueType()); in SimplifySelectCC()
7574 Temp = DAG.getNode(ISD::ZERO_EXTEND, N2.getDebugLoc(), in SimplifySelectCC()
7577 SCC = DAG.getSetCC(N0.getDebugLoc(), MVT::i1, N0, N1, CC); in SimplifySelectCC()
7578 Temp = DAG.getNode(ISD::ZERO_EXTEND, N2.getDebugLoc(), in SimplifySelectCC()
7589 return DAG.getNode(ISD::SHL, DL, N2.getValueType(), Temp, in SimplifySelectCC()
7590 DAG.getConstant(N2C->getAPIntValue().logBase2(), in SimplifySelectCC()
7601 SDValue Res = DAG.getSetCC(DL, TLI.getSetCCResultType(XType), N0, N1, CC); in SimplifySelectCC()
7603 Res = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Res); in SimplifySelectCC()
7611 SDValue Ctlz = DAG.getNode(ISD::CTLZ, N0.getDebugLoc(), XType, N0); in SimplifySelectCC()
7612 return DAG.getNode(ISD::SRL, DL, XType, Ctlz, in SimplifySelectCC()
7613 DAG.getConstant(Log2_32(XType.getSizeInBits()), in SimplifySelectCC()
7618 SDValue NegN0 = DAG.getNode(ISD::SUB, N0.getDebugLoc(), in SimplifySelectCC()
7619 XType, DAG.getConstant(0, XType), N0); in SimplifySelectCC()
7620 SDValue NotN0 = DAG.getNOT(N0.getDebugLoc(), N0, XType); in SimplifySelectCC()
7621 return DAG.getNode(ISD::SRL, DL, XType, in SimplifySelectCC()
7622 DAG.getNode(ISD::AND, DL, XType, NegN0, NotN0), in SimplifySelectCC()
7623 DAG.getConstant(XType.getSizeInBits()-1, in SimplifySelectCC()
7628 SDValue Sign = DAG.getNode(ISD::SRL, N0.getDebugLoc(), XType, N0, in SimplifySelectCC()
7629 DAG.getConstant(XType.getSizeInBits()-1, in SimplifySelectCC()
7631 return DAG.getNode(ISD::XOR, DL, XType, Sign, DAG.getConstant(1, XType)); in SimplifySelectCC()
7654 SDValue Shift = DAG.getNode(ISD::SRA, N0.getDebugLoc(), XType, in SimplifySelectCC()
7656 DAG.getConstant(XType.getSizeInBits()-1, in SimplifySelectCC()
7658 SDValue Add = DAG.getNode(ISD::ADD, N0.getDebugLoc(), in SimplifySelectCC()
7662 return DAG.getNode(ISD::XOR, DL, XType, Add, Shift); in SimplifySelectCC()
7674 DagCombineInfo(DAG, !LegalTypes, !LegalOperations, false, this); in SimplifySetCC()
7684 SDValue S = TLI.BuildSDIV(N, DAG, &Built); in BuildSDIV()
7698 SDValue S = TLI.BuildUDIV(N, DAG, &Built); in BuildUDIV()
7774 MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo(); in isAlias()
7958 return DAG.getEntryNode(); in FindBetterChain()
7965 return DAG.getNode(ISD::TokenFactor, N->getDebugLoc(), MVT::Other, in FindBetterChain()