Lines Matching refs:getNode
536 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
541 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
555 return DAG.getNode(ISD::FSUB, SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
566 return DAG.getNode(Op.getOpcode(), SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
572 return DAG.getNode(Op.getOpcode(), SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
579 return DAG.getNode(Op.getOpcode(), SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
583 return DAG.getNode(ISD::FP_ROUND, SDLoc(Op), Op.getValueType(), in GetNegatedExpression()
605 !TLI.isConstTrueVal(N.getOperand(2).getNode()) || in isSetCCEquivalent()
606 !TLI.isConstFalseVal(N.getOperand(3).getNode())) in isSetCCEquivalent()
620 if (isSetCCEquivalent(N, N0, N1, N2) && N.getNode()->hasOneUse()) in isOneUseSetCC()
644 return N.getNode(); in isConstantBuildVectorOrConstantInt()
680 if (!OpNode.getNode()) in ReassociateOps()
682 return DAG.getNode(Opc, DL, VT, N0.getOperand(0), OpNode); in ReassociateOps()
687 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N0.getOperand(0), N1); in ReassociateOps()
688 if (!OpNode.getNode()) in ReassociateOps()
690 AddToWorkList(OpNode.getNode()); in ReassociateOps()
691 return DAG.getNode(Opc, DL, VT, OpNode, N0.getOperand(1)); in ReassociateOps()
701 if (!OpNode.getNode()) in ReassociateOps()
703 return DAG.getNode(Opc, DL, VT, N1.getOperand(0), OpNode); in ReassociateOps()
708 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N1.getOperand(0), N0); in ReassociateOps()
709 if (!OpNode.getNode()) in ReassociateOps()
711 AddToWorkList(OpNode.getNode()); in ReassociateOps()
712 return DAG.getNode(Opc, DL, VT, OpNode, N1.getOperand(1)); in ReassociateOps()
727 To[0].getNode()->dump(&DAG); in CombineTo()
730 assert((!To[i].getNode() || in CombineTo()
738 if (To[i].getNode()) { in CombineTo()
739 AddToWorkList(To[i].getNode()); in CombineTo()
740 AddUsersToWorkList(To[i].getNode()); in CombineTo()
767 AddToWorkList(TLO.New.getNode()); in CommitTargetLoweringOpt()
768 AddUsersToWorkList(TLO.New.getNode()); in CommitTargetLoweringOpt()
773 if (TLO.Old.getNode()->use_empty()) { in CommitTargetLoweringOpt()
774 removeFromWorkList(TLO.Old.getNode()); in CommitTargetLoweringOpt()
778 for (unsigned i = 0, e = TLO.Old.getNode()->getNumOperands(); i != e; ++i) in CommitTargetLoweringOpt()
779 if (TLO.Old.getNode()->getOperand(i).getNode()->hasOneUse()) in CommitTargetLoweringOpt()
780 AddToWorkList(TLO.Old.getNode()->getOperand(i).getNode()); in CommitTargetLoweringOpt()
782 DAG.DeleteNode(TLO.Old.getNode()); in CommitTargetLoweringOpt()
796 AddToWorkList(Op.getNode()); in SimplifyDemandedBits()
801 TLO.Old.getNode()->dump(&DAG); in SimplifyDemandedBits()
803 TLO.New.getNode()->dump(&DAG); in SimplifyDemandedBits()
813 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, dl, VT, SDValue(ExtLoad, 0)); in ReplaceLoadWithPromotedLoad()
818 Trunc.getNode()->dump(&DAG); in ReplaceLoadWithPromotedLoad()
825 AddToWorkList(Trunc.getNode()); in ReplaceLoadWithPromotedLoad()
847 return DAG.getNode(ISD::AssertSext, dl, PVT, in PromoteOperand()
851 return DAG.getNode(ISD::AssertZext, dl, PVT, in PromoteOperand()
857 return DAG.getNode(ExtOpc, dl, PVT, Op); in PromoteOperand()
863 return DAG.getNode(ISD::ANY_EXTEND, dl, PVT, Op); in PromoteOperand()
873 if (!NewOp.getNode()) in SExtPromoteOperand()
875 AddToWorkList(NewOp.getNode()); in SExtPromoteOperand()
878 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in SExtPromoteOperand()
879 return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, NewOp.getValueType(), NewOp, in SExtPromoteOperand()
888 if (!NewOp.getNode()) in ZExtPromoteOperand()
890 AddToWorkList(NewOp.getNode()); in ZExtPromoteOperand()
893 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in ZExtPromoteOperand()
923 if (!NN0.getNode()) in PromoteIntBinOp()
933 if (!NN1.getNode()) in PromoteIntBinOp()
937 AddToWorkList(NN0.getNode()); in PromoteIntBinOp()
938 if (NN1.getNode()) in PromoteIntBinOp()
939 AddToWorkList(NN1.getNode()); in PromoteIntBinOp()
942 ReplaceLoadWithPromotedLoad(N0.getNode(), NN0.getNode()); in PromoteIntBinOp()
944 ReplaceLoadWithPromotedLoad(N1.getNode(), NN1.getNode()); in PromoteIntBinOp()
947 Op.getNode()->dump(&DAG)); in PromoteIntBinOp()
949 return DAG.getNode(ISD::TRUNCATE, dl, VT, in PromoteIntBinOp()
950 DAG.getNode(Opc, dl, PVT, NN0, NN1)); in PromoteIntBinOp()
986 if (!N0.getNode()) in PromoteIntShiftOp()
989 AddToWorkList(N0.getNode()); in PromoteIntShiftOp()
991 ReplaceLoadWithPromotedLoad(Op.getOperand(0).getNode(), N0.getNode()); in PromoteIntShiftOp()
994 Op.getNode()->dump(&DAG)); in PromoteIntShiftOp()
996 return DAG.getNode(ISD::TRUNCATE, dl, VT, in PromoteIntShiftOp()
997 DAG.getNode(Opc, dl, PVT, N0, Op.getOperand(1))); in PromoteIntShiftOp()
1025 Op.getNode()->dump(&DAG)); in PromoteExtend()
1026 return DAG.getNode(Op.getOpcode(), SDLoc(Op), VT, Op.getOperand(0)); in PromoteExtend()
1052 SDNode *N = Op.getNode(); in PromoteLoad()
1062 SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, VT, NewLD); in PromoteLoad()
1067 Result.getNode()->dump(&DAG); in PromoteLoad()
1074 AddToWorkList(Result.getNode()); in PromoteLoad()
1123 AddToWorkList(N->getOperand(i).getNode()); in Run()
1131 if (!RV.getNode()) in Run()
1140 if (RV.getNode() == N) in Run()
1144 RV.getNode()->getOpcode() != ISD::DELETED_NODE && in Run()
1150 RV.getNode()->dump(&DAG); in Run()
1156 if (N->getNumValues() == RV.getNode()->getNumValues()) in Run()
1157 DAG.ReplaceAllUsesWith(N, RV.getNode()); in Run()
1166 AddToWorkList(RV.getNode()); in Run()
1167 AddUsersToWorkList(RV.getNode()); in Run()
1173 AddToWorkList(N->getOperand(i).getNode()); in Run()
1279 if (!RV.getNode()) { in combine()
1295 if (!RV.getNode()) { in combine()
1325 if (!RV.getNode() && SelectionDAG::isCommutativeBinOp(N->getOpcode()) && in combine()
1369 if (getInputChainForNode(N->getOperand(0).getNode()) == N->getOperand(1)) in visitTokenFactor()
1371 if (getInputChainForNode(N->getOperand(1).getNode()) == N->getOperand(0)) in visitTokenFactor()
1401 std::find(TFs.begin(), TFs.end(), Op.getNode()) == TFs.end()) { in visitTokenFactor()
1403 TFs.push_back(Op.getNode()); in visitTokenFactor()
1405 AddToWorkList(Op.getNode()); in visitTokenFactor()
1413 if (SeenOps.insert(Op.getNode())) in visitTokenFactor()
1431 Result = DAG.getNode(ISD::TokenFactor, SDLoc(N), MVT::Other, Ops); in visitTokenFactor()
1467 if (N01C && N00.getOpcode() == ISD::ADD && N00.getNode()->hasOneUse() && in combineShlAddConstant()
1470 N0 = DAG.getNode(ISD::ADD, SDLoc(N0), VT, in combineShlAddConstant()
1471 DAG.getNode(ISD::SHL, SDLoc(N00), VT, in combineShlAddConstant()
1473 DAG.getNode(ISD::SHL, SDLoc(N01), VT, in combineShlAddConstant()
1475 return DAG.getNode(ISD::ADD, DL, VT, N0, N1); in combineShlAddConstant()
1491 if (FoldedVOp.getNode()) return FoldedVOp; in visitADD()
1494 if (ISD::isBuildVectorAllZeros(N1.getNode())) in visitADD()
1496 if (ISD::isBuildVectorAllZeros(N0.getNode())) in visitADD()
1510 return DAG.getNode(ISD::ADD, SDLoc(N), VT, N1, N0); in visitADD()
1524 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitADD()
1530 if (RADD.getNode()) in visitADD()
1535 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1, N0.getOperand(1)); in visitADD()
1539 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, N1.getOperand(1)); in visitADD()
1549 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1.getOperand(0), in visitADD()
1554 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1.getOperand(0), in visitADD()
1560 return DAG.getNode(N1.getOpcode(), SDLoc(N), VT, in visitADD()
1571 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitADD()
1572 DAG.getNode(ISD::ADD, SDLoc(N0), VT, N00, N10), in visitADD()
1573 DAG.getNode(ISD::ADD, SDLoc(N1), VT, N01, N11)); in visitADD()
1592 return DAG.getNode(ISD::OR, SDLoc(N), VT, N0, N1); in visitADD()
1598 if (N0.getOpcode() == ISD::SHL && N0.getNode()->hasOneUse()) { in visitADD()
1600 if (Result.getNode()) return Result; in visitADD()
1602 if (N1.getOpcode() == ISD::SHL && N1.getNode()->hasOneUse()) { in visitADD()
1604 if (Result.getNode()) return Result; in visitADD()
1613 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, in visitADD()
1614 DAG.getNode(ISD::SHL, SDLoc(N), VT, in visitADD()
1622 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1, in visitADD()
1623 DAG.getNode(ISD::SHL, SDLoc(N), VT, in visitADD()
1637 return DAG.getNode(ISD::SUB, DL, VT, N->getOperand(0), AndOp0); in visitADD()
1646 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitADD()
1647 return DAG.getNode(ISD::SUB, DL, VT, N1, ZExt); in visitADD()
1662 return CombineTo(N, DAG.getNode(ISD::ADD, SDLoc(N), VT, N0, N1), in visitADDC()
1663 DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1668 return DAG.getNode(ISD::ADDC, SDLoc(N), N->getVTList(), N1, N0); in visitADDC()
1672 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1686 return CombineTo(N, DAG.getNode(ISD::OR, SDLoc(N), VT, N0, N1), in visitADDC()
1687 DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
1703 return DAG.getNode(ISD::ADDE, SDLoc(N), N->getVTList(), in visitADDE()
1708 return DAG.getNode(ISD::ADDC, SDLoc(N), N->getVTList(), N0, N1); in visitADDE()
1728 ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0.getNode()); in visitSUB()
1729 ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1.getNode()); in visitSUB()
1731 dyn_cast<ConstantSDNode>(N1.getOperand(1).getNode()); in visitSUB()
1737 if (FoldedVOp.getNode()) return FoldedVOp; in visitSUB()
1740 if (ISD::isBuildVectorAllZeros(N1.getNode())) in visitSUB()
1753 return DAG.getNode(ISD::ADD, SDLoc(N), VT, N0, in visitSUB()
1757 return DAG.getNode(ISD::XOR, SDLoc(N), VT, N1, N0); in visitSUB()
1771 return DAG.getNode(ISD::SUB, SDLoc(N), VT, NewC, in visitSUB()
1779 return DAG.getNode(N0.getOperand(1).getOpcode(), SDLoc(N), VT, in visitSUB()
1785 return DAG.getNode(ISD::ADD, SDLoc(N), VT, in visitSUB()
1791 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitSUB()
1827 return CombineTo(N, DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, N1), in visitSUBC()
1828 DAG.getNode(ISD::CARRY_FALSE, SDLoc(N), in visitSUBC()
1834 DAG.getNode(ISD::CARRY_FALSE, SDLoc(N), in visitSUBC()
1839 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, SDLoc(N), in visitSUBC()
1844 return CombineTo(N, DAG.getNode(ISD::XOR, SDLoc(N), VT, N1, N0), in visitSUBC()
1845 DAG.getNode(ISD::CARRY_FALSE, SDLoc(N), in visitSUBC()
1858 return DAG.getNode(ISD::SUBC, SDLoc(N), N->getVTList(), N0, N1); in visitSUBE()
1878 if (FoldedVOp.getNode()) return FoldedVOp; in visitMUL()
1880 N0IsConst = isConstantSplatVector(N0.getNode(), ConstValue0); in visitMUL()
1881 N1IsConst = isConstantSplatVector(N1.getNode(), ConstValue1); in visitMUL()
1893 return DAG.FoldConstantArithmetic(ISD::MUL, VT, N0.getNode(), N1.getNode()); in visitMUL()
1897 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N1, N0); in visitMUL()
1910 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitMUL()
1914 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, in visitMUL()
1922 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitMUL()
1924 DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, in visitMUL()
1932 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
1934 SDValue C3 = DAG.getNode(ISD::SHL, SDLoc(N), VT, in visitMUL()
1936 AddToWorkList(C3.getNode()); in visitMUL()
1937 return DAG.getNode(ISD::MUL, SDLoc(N), VT, in visitMUL()
1947 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
1949 N0.getNode()->hasOneUse()) { in visitMUL()
1953 N1.getNode()->hasOneUse()) { in visitMUL()
1957 if (Sh.getNode()) { in visitMUL()
1958 SDValue Mul = DAG.getNode(ISD::MUL, SDLoc(N), VT, in visitMUL()
1960 return DAG.getNode(ISD::SHL, SDLoc(N), VT, in visitMUL()
1966 if (N1IsConst && N0.getOpcode() == ISD::ADD && N0.getNode()->hasOneUse() && in visitMUL()
1967 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
1969 return DAG.getNode(ISD::ADD, SDLoc(N), VT, in visitMUL()
1970 DAG.getNode(ISD::MUL, SDLoc(N0), VT, in visitMUL()
1972 DAG.getNode(ISD::MUL, SDLoc(N1), VT, in visitMUL()
1977 if (RMUL.getNode()) in visitMUL()
1993 if (FoldedVOp.getNode()) return FoldedVOp; in visitSDIV()
2004 return DAG.getNode(ISD::SUB, SDLoc(N), VT, in visitSDIV()
2010 return DAG.getNode(ISD::UDIV, SDLoc(N), N1.getValueType(), in visitSDIV()
2026 DAG.getNode(ISD::SRA, SDLoc(N), VT, N0, in visitSDIV()
2029 AddToWorkList(SGN.getNode()); in visitSDIV()
2033 DAG.getNode(ISD::SRL, SDLoc(N), VT, SGN, in visitSDIV()
2036 SDValue ADD = DAG.getNode(ISD::ADD, SDLoc(N), VT, N0, SRL); in visitSDIV()
2037 AddToWorkList(SRL.getNode()); in visitSDIV()
2038 AddToWorkList(ADD.getNode()); // Divide by pow2 in visitSDIV()
2039 SDValue SRA = DAG.getNode(ISD::SRA, SDLoc(N), VT, ADD, in visitSDIV()
2047 AddToWorkList(SRA.getNode()); in visitSDIV()
2048 return DAG.getNode(ISD::SUB, SDLoc(N), VT, DAG.getConstant(0, VT), SRA); in visitSDIV()
2055 if (Op.getNode()) return Op; in visitSDIV()
2078 if (FoldedVOp.getNode()) return FoldedVOp; in visitUDIV()
2086 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, in visitUDIV()
2094 SDValue Add = DAG.getNode(ISD::ADD, SDLoc(N), ADDVT, in visitUDIV()
2099 AddToWorkList(Add.getNode()); in visitUDIV()
2100 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, Add); in visitUDIV()
2107 if (Op.getNode()) return Op; in visitUDIV()
2134 return DAG.getNode(ISD::UREM, SDLoc(N), VT, N0, N1); in visitSREM()
2140 SDValue Div = DAG.getNode(ISD::SDIV, SDLoc(N), VT, N0, N1); in visitSREM()
2141 AddToWorkList(Div.getNode()); in visitSREM()
2142 SDValue OptimizedDiv = combine(Div.getNode()); in visitSREM()
2143 if (OptimizedDiv.getNode() && OptimizedDiv.getNode() != Div.getNode()) { in visitSREM()
2144 SDValue Mul = DAG.getNode(ISD::MUL, SDLoc(N), VT, in visitSREM()
2146 SDValue Sub = DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, Mul); in visitSREM()
2147 AddToWorkList(Mul.getNode()); in visitSREM()
2174 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0, in visitUREM()
2181 DAG.getNode(ISD::ADD, SDLoc(N), VT, N1, in visitUREM()
2184 AddToWorkList(Add.getNode()); in visitUREM()
2185 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0, Add); in visitUREM()
2193 SDValue Div = DAG.getNode(ISD::UDIV, SDLoc(N), VT, N0, N1); in visitUREM()
2194 AddToWorkList(Div.getNode()); in visitUREM()
2195 SDValue OptimizedDiv = combine(Div.getNode()); in visitUREM()
2196 if (OptimizedDiv.getNode() && OptimizedDiv.getNode() != Div.getNode()) { in visitUREM()
2197 SDValue Mul = DAG.getNode(ISD::MUL, SDLoc(N), VT, in visitUREM()
2199 SDValue Sub = DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, Mul); in visitUREM()
2200 AddToWorkList(Mul.getNode()); in visitUREM()
2227 return DAG.getNode(ISD::SRA, SDLoc(N), N0.getValueType(), N0, in visitMULHS()
2241 N0 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N0); in visitMULHS()
2242 N1 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N1); in visitMULHS()
2243 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHS()
2244 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHS()
2246 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHS()
2277 N0 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N0); in visitMULHU()
2278 N1 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N1); in visitMULHU()
2279 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHU()
2280 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHU()
2282 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHU()
2300 SDValue Res = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), in SimplifyNodeWithTwoResults()
2310 SDValue Res = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), in SimplifyNodeWithTwoResults()
2321 SDValue Lo = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), in SimplifyNodeWithTwoResults()
2323 AddToWorkList(Lo.getNode()); in SimplifyNodeWithTwoResults()
2324 SDValue LoOpt = combine(Lo.getNode()); in SimplifyNodeWithTwoResults()
2325 if (LoOpt.getNode() && LoOpt.getNode() != Lo.getNode() && in SimplifyNodeWithTwoResults()
2332 SDValue Hi = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), in SimplifyNodeWithTwoResults()
2334 AddToWorkList(Hi.getNode()); in SimplifyNodeWithTwoResults()
2335 SDValue HiOpt = combine(Hi.getNode()); in SimplifyNodeWithTwoResults()
2336 if (HiOpt.getNode() && HiOpt != Hi && in SimplifyNodeWithTwoResults()
2347 if (Res.getNode()) return Res; in visitSMUL_LOHI()
2359 SDValue Lo = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(0)); in visitSMUL_LOHI()
2360 SDValue Hi = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(1)); in visitSMUL_LOHI()
2361 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitSMUL_LOHI()
2363 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitSMUL_LOHI()
2365 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitSMUL_LOHI()
2367 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitSMUL_LOHI()
2377 if (Res.getNode()) return Res; in visitUMUL_LOHI()
2389 SDValue Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(0)); in visitUMUL_LOHI()
2390 SDValue Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(1)); in visitUMUL_LOHI()
2391 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitUMUL_LOHI()
2393 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitUMUL_LOHI()
2395 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitUMUL_LOHI()
2397 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitUMUL_LOHI()
2409 return DAG.getNode(ISD::SADDO, SDLoc(N), N->getVTList(), in visitSMULO()
2419 return DAG.getNode(ISD::UADDO, SDLoc(N), N->getVTList(), in visitUMULO()
2427 if (Res.getNode()) return Res; in visitSDIVREM()
2434 if (Res.getNode()) return Res; in visitUDIVREM()
2447 if (N0.getNode()->getNumOperands() == 0) return SDValue(); in SimplifyBinOpWithSameOpcodeHands()
2470 SDValue ORNode = DAG.getNode(N->getOpcode(), SDLoc(N0), in SimplifyBinOpWithSameOpcodeHands()
2473 AddToWorkList(ORNode.getNode()); in SimplifyBinOpWithSameOpcodeHands()
2474 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, ORNode); in SimplifyBinOpWithSameOpcodeHands()
2484 SDValue ORNode = DAG.getNode(N->getOpcode(), SDLoc(N0), in SimplifyBinOpWithSameOpcodeHands()
2487 AddToWorkList(ORNode.getNode()); in SimplifyBinOpWithSameOpcodeHands()
2488 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, in SimplifyBinOpWithSameOpcodeHands()
2510 SDValue Op = DAG.getNode(N->getOpcode(), DL, In0Ty, In0, In1); in SimplifyBinOpWithSameOpcodeHands()
2511 SDValue BC = DAG.getNode(N0.getOpcode(), DL, VT, Op); in SimplifyBinOpWithSameOpcodeHands()
2512 AddToWorkList(Op.getNode()); in SimplifyBinOpWithSameOpcodeHands()
2556 if (N0.getOperand(1) == N1.getOperand(1) && ShOp.getNode()) { in SimplifyBinOpWithSameOpcodeHands()
2557 SDValue NewNode = DAG.getNode(N->getOpcode(), SDLoc(N), VT, in SimplifyBinOpWithSameOpcodeHands()
2559 AddToWorkList(NewNode.getNode()); in SimplifyBinOpWithSameOpcodeHands()
2577 if (N0->getOperand(0) == N1->getOperand(0) && ShOp.getNode()) { in SimplifyBinOpWithSameOpcodeHands()
2578 SDValue NewNode = DAG.getNode(N->getOpcode(), SDLoc(N), VT, in SimplifyBinOpWithSameOpcodeHands()
2580 AddToWorkList(NewNode.getNode()); in SimplifyBinOpWithSameOpcodeHands()
2602 if (FoldedVOp.getNode()) return FoldedVOp; in visitAND()
2605 if (ISD::isBuildVectorAllZeros(N0.getNode())) in visitAND()
2607 if (ISD::isBuildVectorAllZeros(N1.getNode())) in visitAND()
2611 if (ISD::isBuildVectorAllOnes(N0.getNode())) in visitAND()
2613 if (ISD::isBuildVectorAllOnes(N1.getNode())) in visitAND()
2625 return DAG.getNode(ISD::AND, SDLoc(N), VT, N1, N0); in visitAND()
2635 if (RAND.getNode()) in visitAND()
2648 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), in visitAND()
2657 CombineTo(N0.getNode(), Zext); in visitAND()
2755 CombineTo(N, (N0.getNode() == Load) ? NewLoad : N0); in visitAND()
2769 SDValue ORNode = DAG.getNode(ISD::OR, SDLoc(N0), in visitAND()
2771 AddToWorkList(ORNode.getNode()); in visitAND()
2776 SDValue ANDNode = DAG.getNode(ISD::AND, SDLoc(N0), in visitAND()
2778 AddToWorkList(ANDNode.getNode()); in visitAND()
2783 SDValue ORNode = DAG.getNode(ISD::OR, SDLoc(N0), in visitAND()
2785 AddToWorkList(ORNode.getNode()); in visitAND()
2796 SDValue ADDNode = DAG.getNode(ISD::ADD, SDLoc(N0), LL.getValueType(), in visitAND()
2798 AddToWorkList(ADDNode.getNode()); in visitAND()
2823 if (Tmp.getNode()) return Tmp; in visitAND()
2833 if (ISD::isEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode())) { in visitAND()
2847 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitAND()
2852 if (ISD::isSEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) && in visitAND()
2867 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitAND()
2919 NewPtr = DAG.getNode(ISD::ADD, SDLoc(LN0), PtrType, in visitAND()
2924 AddToWorkList(NewPtr.getNode()); in visitAND()
2957 DAG.getNode(ISD::ADD, SDLoc(N0), VT, in visitAND()
2959 CombineTo(N0.getNode(), NewAdd); in visitAND()
2970 SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitAND()
2972 if (BSwap.getNode()) in visitAND()
3000 if (!N0.getNode()->hasOneUse()) in MatchBSwapHWordLow()
3010 if (!N1.getNode()->hasOneUse()) in MatchBSwapHWordLow()
3023 if (!N0.getNode()->hasOneUse() || in MatchBSwapHWordLow()
3024 !N1.getNode()->hasOneUse()) in MatchBSwapHWordLow()
3037 if (!N00.getNode()->hasOneUse()) in MatchBSwapHWordLow()
3048 if (!N10.getNode()->hasOneUse()) in MatchBSwapHWordLow()
3078 SDValue Res = DAG.getNode(ISD::BSWAP, SDLoc(N), VT, N00); in MatchBSwapHWordLow()
3080 Res = DAG.getNode(ISD::SRL, SDLoc(N), VT, Res, in MatchBSwapHWordLow()
3089 if (!N.getNode()->hasOneUse()) in isBSwapHWordElement()
3151 Parts[Num] = N0.getOperand(0).getNode(); in isBSwapHWordElement()
3213 SDValue BSwap = DAG.getNode(ISD::BSWAP, SDLoc(N), VT, in MatchBSwapHWord()
3220 return DAG.getNode(ISD::ROTL, SDLoc(N), VT, BSwap, ShAmt); in MatchBSwapHWord()
3222 return DAG.getNode(ISD::ROTR, SDLoc(N), VT, BSwap, ShAmt); in MatchBSwapHWord()
3223 return DAG.getNode(ISD::OR, SDLoc(N), VT, in MatchBSwapHWord()
3224 DAG.getNode(ISD::SHL, SDLoc(N), VT, BSwap, ShAmt), in MatchBSwapHWord()
3225 DAG.getNode(ISD::SRL, SDLoc(N), VT, BSwap, ShAmt)); in MatchBSwapHWord()
3239 if (FoldedVOp.getNode()) return FoldedVOp; in visitOR()
3242 if (ISD::isBuildVectorAllZeros(N0.getNode())) in visitOR()
3244 if (ISD::isBuildVectorAllZeros(N1.getNode())) in visitOR()
3248 if (ISD::isBuildVectorAllOnes(N0.getNode())) in visitOR()
3250 if (ISD::isBuildVectorAllOnes(N1.getNode())) in visitOR()
3259 ISD::isBuildVectorAllZeros(N0.getOperand(1).getNode())) { in visitOR()
3319 return DAG.getNode(ISD::OR, SDLoc(N), VT, N1, N0); in visitOR()
3332 if (BSwap.getNode()) in visitOR()
3335 if (BSwap.getNode()) in visitOR()
3340 if (ROR.getNode()) in visitOR()
3344 if (N1C && N0.getOpcode() == ISD::AND && N0.getNode()->hasOneUse() && in visitOR()
3349 if (!COR.getNode()) in visitOR()
3351 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitOR()
3352 DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitOR()
3367 SDValue ORNode = DAG.getNode(ISD::OR, SDLoc(LR), in visitOR()
3369 AddToWorkList(ORNode.getNode()); in visitOR()
3376 SDValue ANDNode = DAG.getNode(ISD::AND, SDLoc(LR), in visitOR()
3378 AddToWorkList(ANDNode.getNode()); in visitOR()
3403 if (Tmp.getNode()) return Tmp; in visitOR()
3412 (N0.getNode()->hasOneUse() || N1.getNode()->hasOneUse())) { in visitOR()
3422 SDValue X = DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitOR()
3424 return DAG.getNode(ISD::AND, SDLoc(N), VT, X, in visitOR()
3581 return DAG.getNode(HasPos ? PosOpcode : NegOpcode, DL, VT, Shifted, in MatchRotatePosNeg()
3582 HasPos ? Pos : Neg).getNode(); in MatchRotatePosNeg()
3640 SDValue Rot = DAG.getNode(HasROTL ? ISD::ROTL : ISD::ROTR, DL, VT, in MatchRotate()
3644 if (LHSMask.getNode() || RHSMask.getNode()) { in MatchRotate()
3647 if (LHSMask.getNode()) { in MatchRotate()
3651 if (RHSMask.getNode()) { in MatchRotate()
3656 Rot = DAG.getNode(ISD::AND, DL, VT, Rot, DAG.getConstant(Mask, VT)); in MatchRotate()
3659 return Rot.getNode(); in MatchRotate()
3664 if (LHSMask.getNode() || RHSMask.getNode()) in MatchRotate()
3706 if (FoldedVOp.getNode()) return FoldedVOp; in visitXOR()
3709 if (ISD::isBuildVectorAllZeros(N0.getNode())) in visitXOR()
3711 if (ISD::isBuildVectorAllZeros(N1.getNode())) in visitXOR()
3728 return DAG.getNode(ISD::XOR, SDLoc(N), VT, N1, N0); in visitXOR()
3734 if (RXOR.getNode()) in visitXOR()
3759 N0.getNode()->hasOneUse() && in visitXOR()
3762 V = DAG.getNode(ISD::XOR, SDLoc(N0), V.getValueType(), V, in visitXOR()
3764 AddToWorkList(V.getNode()); in visitXOR()
3765 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, V); in visitXOR()
3774 LHS = DAG.getNode(ISD::XOR, SDLoc(LHS), VT, LHS, N1); // LHS = ~LHS in visitXOR()
3775 RHS = DAG.getNode(ISD::XOR, SDLoc(RHS), VT, RHS, N1); // RHS = ~RHS in visitXOR()
3776 AddToWorkList(LHS.getNode()); AddToWorkList(RHS.getNode()); in visitXOR()
3777 return DAG.getNode(NewOpcode, SDLoc(N), VT, LHS, RHS); in visitXOR()
3786 LHS = DAG.getNode(ISD::XOR, SDLoc(LHS), VT, LHS, N1); // LHS = ~LHS in visitXOR()
3787 RHS = DAG.getNode(ISD::XOR, SDLoc(RHS), VT, RHS, N1); // RHS = ~RHS in visitXOR()
3788 AddToWorkList(LHS.getNode()); AddToWorkList(RHS.getNode()); in visitXOR()
3789 return DAG.getNode(NewOpcode, SDLoc(N), VT, LHS, RHS); in visitXOR()
3793 if (N0.getOpcode() == ISD::AND && N0.getNode()->hasOneUse() && in visitXOR()
3797 AddToWorkList(NotX.getNode()); in visitXOR()
3798 return DAG.getNode(ISD::AND, SDLoc(N), VT, NotX, N1); in visitXOR()
3805 return DAG.getNode(ISD::XOR, SDLoc(N), VT, N0.getOperand(1), in visitXOR()
3809 return DAG.getNode(ISD::XOR, SDLoc(N), VT, N0.getOperand(0), in visitXOR()
3820 if (Tmp.getNode()) return Tmp; in visitXOR()
3838 SDNode *LHS = N->getOperand(0).getNode(); in visitShiftByConstant()
3872 SDNode *BinOpLHSVal = LHS->getOperand(0).getNode(); in visitShiftByConstant()
3895 SDValue NewRHS = DAG.getNode(N->getOpcode(), SDLoc(LHS->getOperand(1)), in visitShiftByConstant()
3901 SDValue NewShift = DAG.getNode(N->getOpcode(), in visitShiftByConstant()
3906 return DAG.getNode(LHS->getOpcode(), SDLoc(N), VT, NewShift, NewRHS); in visitShiftByConstant()
3923 return DAG.getNode(ISD::AND, SDLoc(N), TruncVT, in distributeTruncateThroughAnd()
3924 DAG.getNode(ISD::TRUNCATE, SDLoc(N), TruncVT, N00), in distributeTruncateThroughAnd()
3936 SDValue NewOp1 = distributeTruncateThroughAnd(N->getOperand(1).getNode()); in visitRotate()
3937 if (NewOp1.getNode()) in visitRotate()
3938 return DAG.getNode(N->getOpcode(), SDLoc(N), N->getValueType(0), in visitRotate()
3955 if (FoldedVOp.getNode()) return FoldedVOp; in visitSHL()
3970 if (C.getNode()) in visitSHL()
3971 return DAG.getNode(ISD::AND, SDLoc(N), VT, N00, C); in visitSHL()
4001 SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode()); in visitSHL()
4002 if (NewOp1.getNode()) in visitSHL()
4003 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, NewOp1); in visitSHL()
4016 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0.getOperand(0), in visitSHL()
4039 return DAG.getNode(ISD::SHL, SDLoc(N0), VT, in visitSHL()
4040 DAG.getNode(N0.getOpcode(), SDLoc(N0), VT, in visitSHL()
4060 SDValue NewSHL = DAG.getNode(ISD::SHL, SDLoc(N), NewOp0.getValueType(), in visitSHL()
4062 AddToWorkList(NewSHL.getNode()); in visitSHL()
4063 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N0), VT, NewSHL); in visitSHL()
4082 Shift = DAG.getNode(ISD::SHL, SDLoc(N), VT, N0.getOperand(0), in visitSHL()
4086 Shift = DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), in visitSHL()
4089 return DAG.getNode(ISD::AND, SDLoc(N0), VT, Shift, in visitSHL()
4100 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0.getOperand(0), in visitSHL()
4106 if (NewSHL.getNode()) in visitSHL()
4124 if (FoldedVOp.getNode()) return FoldedVOp; in visitSRA()
4154 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, in visitSRA()
4164 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0.getOperand(0), in visitSRA()
4199 SDValue Shift = DAG.getNode(ISD::SRL, SDLoc(N0), VT, in visitSRA()
4201 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), TruncVT, in visitSRA()
4203 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), in visitSRA()
4212 SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode()); in visitSRA()
4213 if (NewOp1.getNode()) in visitSRA()
4214 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0, NewOp1); in visitSRA()
4234 SDValue SRA = DAG.getNode(ISD::SRA, SDLoc(N), LargeVT, in visitSRA()
4236 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, SRA); in visitSRA()
4248 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, N1); in visitSRA()
4252 if (NewSRA.getNode()) in visitSRA()
4270 if (FoldedVOp.getNode()) return FoldedVOp; in visitSRL()
4299 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), in visitSRL()
4318 return DAG.getNode(ISD::TRUNCATE, SDLoc(N0), VT, in visitSRL()
4319 DAG.getNode(ISD::SRL, SDLoc(N0), InnerShiftVT, in visitSRL()
4330 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0.getOperand(0), in visitSRL()
4345 SDValue SmallShift = DAG.getNode(ISD::SRL, SDLoc(N0), SmallVT, in visitSRL()
4348 AddToWorkList(SmallShift.getNode()); in visitSRL()
4350 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitSRL()
4351 DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), VT, SmallShift), in visitSRL()
4360 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), N1); in visitSRL()
4388 Op = DAG.getNode(ISD::SRL, SDLoc(N0), VT, Op, in visitSRL()
4390 AddToWorkList(Op.getNode()); in visitSRL()
4393 return DAG.getNode(ISD::XOR, SDLoc(N), VT, in visitSRL()
4401 SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode()); in visitSRL()
4402 if (NewOp1.getNode()) in visitSRL()
4403 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, NewOp1); in visitSRL()
4413 if (NewSRL.getNode()) in visitSRL()
4419 if (NarrowLoad.getNode()) in visitSRL()
4460 return DAG.getNode(ISD::CTLZ, SDLoc(N), VT, N0); in visitCTLZ()
4470 return DAG.getNode(ISD::CTLZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTLZ_ZERO_UNDEF()
4480 return DAG.getNode(ISD::CTTZ, SDLoc(N), VT, N0); in visitCTTZ()
4490 return DAG.getNode(ISD::CTTZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTTZ_ZERO_UNDEF()
4500 return DAG.getNode(ISD::CTPOP, SDLoc(N), VT, N0); in visitCTPOP()
4525 return DAG.getNode(ISD::OR, SDLoc(N), VT, N0, N2); in visitSELECT()
4544 return DAG.getNode(ISD::XOR, SDLoc(N), VT0, in visitSELECT()
4546 XORNode = DAG.getNode(ISD::XOR, SDLoc(N0), VT0, in visitSELECT()
4548 AddToWorkList(XORNode.getNode()); in visitSELECT()
4550 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, XORNode); in visitSELECT()
4551 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, XORNode); in visitSELECT()
4556 AddToWorkList(NOTNode.getNode()); in visitSELECT()
4557 return DAG.getNode(ISD::AND, SDLoc(N), VT, NOTNode, N2); in visitSELECT()
4562 AddToWorkList(NOTNode.getNode()); in visitSELECT()
4563 return DAG.getNode(ISD::OR, SDLoc(N), VT, NOTNode, N1); in visitSELECT()
4567 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0, N1); in visitSELECT()
4571 return DAG.getNode(ISD::OR, SDLoc(N), VT, N0, N2); in visitSELECT()
4575 return DAG.getNode(ISD::AND, SDLoc(N), VT, N0, N1); in visitSELECT()
4586 return DAG.getNode(ISD::SELECT_CC, SDLoc(N), VT, in visitSELECT()
4606 Lo = DAG.getNode(N->getOpcode(), DL, LoVT, LL, RL, N->getOperand(2)); in SplitVSETCC()
4607 Hi = DAG.getNode(N->getOpcode(), DL, HiVT, LH, RH, N->getOperand(2)); in SplitVSETCC()
4637 else if (Cond->getOperand(i).getNode() != BottomHalf) in ConvertSelectToConcatVector()
4649 else if (Cond->getOperand(i).getNode() != TopHalf) in ConvertSelectToConcatVector()
4656 return DAG.getNode( in ConvertSelectToConcatVector()
4677 bool RHSIsAllZeros = ISD::isBuildVectorAllZeros(RHS.getNode()); in visitVSELECT()
4680 (ISD::isBuildVectorAllOnes(RHS.getNode()) && CC == ISD::SETGT)) && in visitVSELECT()
4682 isAbs = ISD::isBuildVectorAllZeros(N2.getOperand(0).getNode()); in visitVSELECT()
4685 isAbs = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitVSELECT()
4689 SDValue Shift = DAG.getNode( in visitVSELECT()
4692 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, LHS, Shift); in visitVSELECT()
4693 AddToWorkList(Shift.getNode()); in visitVSELECT()
4694 AddToWorkList(Add.getNode()); in visitVSELECT()
4695 return DAG.getNode(ISD::XOR, DL, VT, Add, Shift); in visitVSELECT()
4712 std::tie(CCLo, CCHi) = SplitVSETCC(N0.getNode(), DAG); in visitVSELECT()
4716 Lo = DAG.getNode(N->getOpcode(), DL, LL.getValueType(), CCLo, LL, RL); in visitVSELECT()
4717 Hi = DAG.getNode(N->getOpcode(), DL, LH.getValueType(), CCHi, LH, RH); in visitVSELECT()
4721 AddToWorkList(Lo.getNode()); in visitVSELECT()
4722 AddToWorkList(Hi.getNode()); in visitVSELECT()
4724 return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Lo, Hi); in visitVSELECT()
4728 if (ISD::isBuildVectorAllOnes(N0.getNode())) in visitVSELECT()
4731 if (ISD::isBuildVectorAllZeros(N0.getNode())) in visitVSELECT()
4739 ISD::isBuildVectorOfConstantSDNodes(N0.getNode())) { in visitVSELECT()
4741 if (CV.getNode()) in visitVSELECT()
4763 if (SCC.getNode()) { in visitSELECT_CC()
4764 AddToWorkList(SCC.getNode()); in visitSELECT_CC()
4766 if (ConstantSDNode *SCCC = dyn_cast<ConstantSDNode>(SCC.getNode())) { in visitSELECT_CC()
4775 return DAG.getNode(ISD::SELECT_CC, SDLoc(N), N2.getValueType(), in visitSELECT_CC()
4814 return DAG.getNode(Opcode, SDLoc(N), VT, N0).getNode(); in tryToFoldExtendOfConstant()
4822 ISD::isBuildVectorOfConstantSDNodes(N0.getNode()))) in tryToFoldExtendOfConstant()
4850 return DAG.getNode(ISD::BUILD_VECTOR, DL, VT, Elts).getNode(); in tryToFoldExtendOfConstant()
4863 for (SDNode::use_iterator UI = N0.getNode()->use_begin(), in ExtendUsesToFormExtLoad()
4864 UE = N0.getNode()->use_end(); in ExtendUsesToFormExtLoad()
4930 Ops.push_back(DAG.getNode(ExtType, DL, ExtLoad->getValueType(0), SOp)); in ExtendSetCCUses()
4934 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0), Ops)); in ExtendSetCCUses()
4949 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, in visitSIGN_EXTEND()
4955 SDValue NarrowLoad = ReduceLoadWidth(N0.getNode()); in visitSIGN_EXTEND()
4956 if (NarrowLoad.getNode()) { in visitSIGN_EXTEND()
4957 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitSIGN_EXTEND()
4958 if (NarrowLoad.getNode() != N0.getNode()) { in visitSIGN_EXTEND()
4959 CombineTo(N0.getNode(), NarrowLoad); in visitSIGN_EXTEND()
4983 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, Op); in visitSIGN_EXTEND()
4988 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Op); in visitSIGN_EXTEND()
4995 Op = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
4997 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
4998 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, Op, in visitSIGN_EXTEND()
5007 if (ISD::isNON_EXTLoad(N0.getNode()) && !VT.isVector() && in visitSIGN_EXTEND()
5008 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND()
5022 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), in visitSIGN_EXTEND()
5024 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1)); in visitSIGN_EXTEND()
5033 if ((ISD::isSEXTLoad(N0.getNode()) || ISD::isEXTLoad(N0.getNode())) && in visitSIGN_EXTEND()
5034 ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) { in visitSIGN_EXTEND()
5044 CombineTo(N0.getNode(), in visitSIGN_EXTEND()
5045 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), in visitSIGN_EXTEND()
5074 SDValue And = DAG.getNode(N0.getOpcode(), SDLoc(N), VT, in visitSIGN_EXTEND()
5076 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, in visitSIGN_EXTEND()
5080 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1)); in visitSIGN_EXTEND()
5130 if (SCC.getNode()) return SCC; in visitSIGN_EXTEND()
5152 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, N0); in visitSIGN_EXTEND()
5206 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, in visitZERO_EXTEND()
5225 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, Op); in visitZERO_EXTEND()
5227 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Op); in visitZERO_EXTEND()
5236 SDValue NarrowLoad = ReduceLoadWidth(N0.getNode()); in visitZERO_EXTEND()
5237 if (NarrowLoad.getNode()) { in visitZERO_EXTEND()
5238 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitZERO_EXTEND()
5239 if (NarrowLoad.getNode() != N0.getNode()) { in visitZERO_EXTEND()
5240 CombineTo(N0.getNode(), NarrowLoad); in visitZERO_EXTEND()
5254 SDValue NarrowLoad = ReduceLoadWidth(N0.getNode()); in visitZERO_EXTEND()
5255 if (NarrowLoad.getNode()) { in visitZERO_EXTEND()
5256 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitZERO_EXTEND()
5257 if (NarrowLoad.getNode() != N0.getNode()) { in visitZERO_EXTEND()
5258 CombineTo(N0.getNode(), NarrowLoad); in visitZERO_EXTEND()
5267 Op = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), VT, Op); in visitZERO_EXTEND()
5268 AddToWorkList(Op.getNode()); in visitZERO_EXTEND()
5270 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Op); in visitZERO_EXTEND()
5271 AddToWorkList(Op.getNode()); in visitZERO_EXTEND()
5287 X = DAG.getNode(ISD::ANY_EXTEND, SDLoc(X), VT, X); in visitZERO_EXTEND()
5289 X = DAG.getNode(ISD::TRUNCATE, SDLoc(X), VT, X); in visitZERO_EXTEND()
5293 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitZERO_EXTEND()
5301 if (ISD::isNON_EXTLoad(N0.getNode()) && !VT.isVector() && in visitZERO_EXTEND()
5302 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitZERO_EXTEND()
5316 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), in visitZERO_EXTEND()
5318 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1)); in visitZERO_EXTEND()
5348 SDValue And = DAG.getNode(N0.getOpcode(), SDLoc(N), VT, in visitZERO_EXTEND()
5350 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, in visitZERO_EXTEND()
5354 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1)); in visitZERO_EXTEND()
5364 if ((ISD::isZEXTLoad(N0.getNode()) || ISD::isEXTLoad(N0.getNode())) && in visitZERO_EXTEND()
5365 ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) { in visitZERO_EXTEND()
5375 CombineTo(N0.getNode(), in visitZERO_EXTEND()
5376 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), in visitZERO_EXTEND()
5401 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitZERO_EXTEND()
5405 DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), VT, in visitZERO_EXTEND()
5421 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitZERO_EXTEND()
5423 DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), VT, OneOps)); in visitZERO_EXTEND()
5431 if (SCC.getNode()) return SCC; in visitZERO_EXTEND()
5455 ShAmt = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, ShAmt); in visitZERO_EXTEND()
5457 return DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
5458 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)), in visitZERO_EXTEND()
5479 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitANY_EXTEND()
5484 SDValue NarrowLoad = ReduceLoadWidth(N0.getNode()); in visitANY_EXTEND()
5485 if (NarrowLoad.getNode()) { in visitANY_EXTEND()
5486 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitANY_EXTEND()
5487 if (NarrowLoad.getNode() != N0.getNode()) { in visitANY_EXTEND()
5488 CombineTo(N0.getNode(), NarrowLoad); in visitANY_EXTEND()
5502 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, TruncOp); in visitANY_EXTEND()
5503 return DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), VT, TruncOp); in visitANY_EXTEND()
5515 X = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N), VT, X); in visitANY_EXTEND()
5517 X = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, X); in visitANY_EXTEND()
5521 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitANY_EXTEND()
5529 if (ISD::isNON_EXTLoad(N0.getNode()) && !VT.isVector() && in visitANY_EXTEND()
5530 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitANY_EXTEND()
5544 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), in visitANY_EXTEND()
5546 CombineTo(N0.getNode(), Trunc, ExtLoad.getValue(1)); in visitANY_EXTEND()
5557 !ISD::isNON_EXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) && in visitANY_EXTEND()
5567 CombineTo(N0.getNode(), in visitANY_EXTEND()
5568 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), in visitANY_EXTEND()
5610 if (SCC.getNode()) in visitANY_EXTEND()
5624 const ConstantSDNode *CV = cast<ConstantSDNode>(V.getNode()); in GetDemandedBits()
5642 if (!V.getNode()->hasOneUse()) in GetDemandedBits()
5652 if (SimplifyLHS.getNode()) in GetDemandedBits()
5653 return DAG.getNode(ISD::SRL, SDLoc(V), V.getValueType(), in GetDemandedBits()
5786 SDValue NewPtr = DAG.getNode(ISD::ADD, SDLoc(LN0), in ReduceLoadWidth()
5789 AddToWorkList(NewPtr.getNode()); in ReduceLoadWidth()
5820 Result = DAG.getNode(ISD::SHL, SDLoc(N0), VT, in ReduceLoadWidth()
5838 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, N0, N1); in visitSIGN_EXTEND_INREG()
5847 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, in visitSIGN_EXTEND_INREG()
5857 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00, N1); in visitSIGN_EXTEND_INREG()
5872 if (NarrowLoad.getNode()) in visitSIGN_EXTEND_INREG()
5885 return DAG.getNode(ISD::SRA, SDLoc(N), VT, in visitSIGN_EXTEND_INREG()
5891 if (ISD::isEXTLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
5892 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
5902 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
5903 AddToWorkList(ExtLoad.getNode()); in visitSIGN_EXTEND_INREG()
5907 if (ISD::isZEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
5918 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
5924 SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND_INREG()
5926 if (BSwap.getNode()) in visitSIGN_EXTEND_INREG()
5927 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, in visitSIGN_EXTEND_INREG()
5933 if (ISD::isBuildVectorOfConstantSDNodes(N0.getNode())) { in visitSIGN_EXTEND_INREG()
5951 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), VT, Elts); in visitSIGN_EXTEND_INREG()
5967 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0); in visitTRUNCATE()
5970 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
5977 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, in visitTRUNCATE()
5981 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
6016 SDValue V = DAG.getNode(ISD::BITCAST, SDLoc(N), in visitTRUNCATE()
6019 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, in visitTRUNCATE()
6052 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), VT, Opnds); in visitTRUNCATE()
6065 if (Shorter.getNode()) in visitTRUNCATE()
6066 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Shorter); in visitTRUNCATE()
6072 if (Reduced.getNode()) in visitTRUNCATE()
6076 if (N0.hasOneUse() && ISD::isUNINDEXEDLoad(N0.getNode())) { in visitTRUNCATE()
6116 assert(V.getNode() && "The single defined operand is empty!"); in visitTRUNCATE()
6123 SDValue NV = DAG.getNode(ISD::TRUNCATE, SDLoc(V), VTs[i], V); in visitTRUNCATE()
6124 AddToWorkList(NV.getNode()); in visitTRUNCATE()
6127 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Opnds); in visitTRUNCATE()
6142 return Elt.getNode(); in getBuildPairElt()
6143 return Elt.getOperand(Elt.getResNo()).getNode(); in getBuildPairElt()
6188 N0.getOpcode() == ISD::BUILD_VECTOR && N0.getNode()->hasOneUse() && in visitBITCAST()
6196 return ConstantFoldBITCASTofBUILD_VECTOR(N0.getNode(), DestEltVT); in visitBITCAST()
6201 SDValue Res = DAG.getNode(ISD::BITCAST, SDLoc(N), VT, N0); in visitBITCAST()
6202 if (Res.getNode() != N) { in visitBITCAST()
6204 TLI.isOperationLegal(Res.getNode()->getOpcode(), VT)) in visitBITCAST()
6212 DAG.DeleteNode(Res.getNode()); in visitBITCAST()
6218 return DAG.getNode(ISD::BITCAST, SDLoc(N), VT, in visitBITCAST()
6223 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitBITCAST()
6243 CombineTo(N0.getNode(), in visitBITCAST()
6244 DAG.getNode(ISD::BITCAST, SDLoc(N0), in visitBITCAST()
6256 N0.getNode()->hasOneUse() && VT.isInteger() && in visitBITCAST()
6258 SDValue NewConv = DAG.getNode(ISD::BITCAST, SDLoc(N0), VT, in visitBITCAST()
6260 AddToWorkList(NewConv.getNode()); in visitBITCAST()
6264 return DAG.getNode(ISD::XOR, SDLoc(N), VT, in visitBITCAST()
6267 return DAG.getNode(ISD::AND, SDLoc(N), VT, in visitBITCAST()
6275 if (N0.getOpcode() == ISD::FCOPYSIGN && N0.getNode()->hasOneUse() && in visitBITCAST()
6281 SDValue X = DAG.getNode(ISD::BITCAST, SDLoc(N0), in visitBITCAST()
6283 AddToWorkList(X.getNode()); in visitBITCAST()
6288 X = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, X); in visitBITCAST()
6289 AddToWorkList(X.getNode()); in visitBITCAST()
6293 X = DAG.getNode(ISD::SRL, SDLoc(X), in visitBITCAST()
6296 AddToWorkList(X.getNode()); in visitBITCAST()
6297 X = DAG.getNode(ISD::TRUNCATE, SDLoc(X), VT, X); in visitBITCAST()
6298 AddToWorkList(X.getNode()); in visitBITCAST()
6302 X = DAG.getNode(ISD::AND, SDLoc(X), VT, in visitBITCAST()
6304 AddToWorkList(X.getNode()); in visitBITCAST()
6306 SDValue Cst = DAG.getNode(ISD::BITCAST, SDLoc(N0), in visitBITCAST()
6308 Cst = DAG.getNode(ISD::AND, SDLoc(Cst), VT, in visitBITCAST()
6310 AddToWorkList(Cst.getNode()); in visitBITCAST()
6312 return DAG.getNode(ISD::OR, SDLoc(N), VT, X, Cst); in visitBITCAST()
6318 SDValue CombineLD = CombineConsecutiveLoads(N0.getNode(), VT); in visitBITCAST()
6319 if (CombineLD.getNode()) in visitBITCAST()
6353 return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(BV), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
6354 DAG.getNode(ISD::BITCAST, SDLoc(BV), in ConstantFoldBITCASTofBUILD_VECTOR()
6363 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(BV), SrcEltVT, Op); in ConstantFoldBITCASTofBUILD_VECTOR()
6364 Ops.push_back(DAG.getNode(ISD::BITCAST, SDLoc(BV), in ConstantFoldBITCASTofBUILD_VECTOR()
6366 AddToWorkList(Ops.back().getNode()); in ConstantFoldBITCASTofBUILD_VECTOR()
6368 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(BV), VT, Ops); in ConstantFoldBITCASTofBUILD_VECTOR()
6379 BV = ConstantFoldBITCASTofBUILD_VECTOR(BV, IntVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
6388 SDNode *Tmp = ConstantFoldBITCASTofBUILD_VECTOR(BV, TmpVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
6424 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(BV), VT, Ops); in ConstantFoldBITCASTofBUILD_VECTOR()
6450 return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(BV), VT, in ConstantFoldBITCASTofBUILD_VECTOR()
6460 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(BV), VT, Ops); in ConstantFoldBITCASTofBUILD_VECTOR()
6473 if (FoldedVOp.getNode()) return FoldedVOp; in visitFADD()
6478 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0, N1); in visitFADD()
6481 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N1, N0); in visitFADD()
6489 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0, in visitFADD()
6494 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N1, in visitFADD()
6499 N0.getOpcode() == ISD::FADD && N0.getNode()->hasOneUse() && in visitFADD()
6501 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0.getOperand(0), in visitFADD()
6502 DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6538 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6541 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6547 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6550 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6558 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6561 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6569 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6572 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6583 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6586 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6592 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6595 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6604 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6607 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6615 SDValue NewCFP = DAG.getNode(ISD::FADD, SDLoc(N), VT, in visitFADD()
6618 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6628 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6637 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6647 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFADD()
6660 return DAG.getNode(ISD::FMA, SDLoc(N), VT, in visitFADD()
6666 return DAG.getNode(ISD::FMA, SDLoc(N), VT, in visitFADD()
6684 if (FoldedVOp.getNode()) return FoldedVOp; in visitFSUB()
6689 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0, N1); in visitFSUB()
6700 return DAG.getNode(ISD::FNEG, dl, VT, N1); in visitFSUB()
6704 return DAG.getNode(ISD::FADD, dl, VT, N0, in visitFSUB()
6737 return DAG.getNode(ISD::FMA, dl, VT, in visitFSUB()
6739 DAG.getNode(ISD::FNEG, dl, VT, N1)); in visitFSUB()
6744 return DAG.getNode(ISD::FMA, dl, VT, in visitFSUB()
6745 DAG.getNode(ISD::FNEG, dl, VT, in visitFSUB()
6755 return DAG.getNode(ISD::FMA, dl, VT, in visitFSUB()
6756 DAG.getNode(ISD::FNEG, dl, VT, N00), N01, in visitFSUB()
6757 DAG.getNode(ISD::FNEG, dl, VT, N1)); in visitFSUB()
6775 if (FoldedVOp.getNode()) return FoldedVOp; in visitFMUL()
6780 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, N0, N1); in visitFMUL()
6783 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, N1, N0); in visitFMUL()
6790 ISD::isBuildVectorAllZeros(N1.getNode())) in visitFMUL()
6797 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0, N0); in visitFMUL()
6801 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, N0); in visitFMUL()
6811 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFMUL()
6820 N0.getNode()->hasOneUse() && isa<ConstantFPSDNode>(N0.getOperand(1))) in visitFMUL()
6821 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, N0.getOperand(0), in visitFMUL()
6822 DAG.getNode(ISD::FMUL, SDLoc(N), VT, in visitFMUL()
6844 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N1, N2); in visitFMA()
6846 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0, N2); in visitFMA()
6850 return DAG.getNode(ISD::FMA, SDLoc(N), VT, N1, N0, N2); in visitFMA()
6857 return DAG.getNode(ISD::FMUL, dl, VT, N0, in visitFMA()
6858 DAG.getNode(ISD::FADD, dl, VT, N1, N2.getOperand(1))); in visitFMA()
6866 return DAG.getNode(ISD::FMA, dl, VT, in visitFMA()
6868 DAG.getNode(ISD::FMUL, dl, VT, N1, N0.getOperand(1)), in visitFMA()
6876 return DAG.getNode(ISD::FADD, dl, VT, N0, N2); in visitFMA()
6880 SDValue RHSNeg = DAG.getNode(ISD::FNEG, dl, VT, N0); in visitFMA()
6881 AddToWorkList(RHSNeg.getNode()); in visitFMA()
6882 return DAG.getNode(ISD::FADD, dl, VT, N2, RHSNeg); in visitFMA()
6888 return DAG.getNode(ISD::FMUL, dl, VT, N0, in visitFMA()
6889 DAG.getNode(ISD::FADD, dl, VT, in visitFMA()
6895 return DAG.getNode(ISD::FMUL, dl, VT, N0, in visitFMA()
6896 DAG.getNode(ISD::FADD, dl, VT, in visitFMA()
6914 if (FoldedVOp.getNode()) return FoldedVOp; in visitFDIV()
6919 return DAG.getNode(ISD::FDIV, SDLoc(N), VT, N0, N1); in visitFDIV()
6936 return DAG.getNode(ISD::FMUL, SDLoc(N), VT, N0, in visitFDIV()
6948 return DAG.getNode(ISD::FDIV, SDLoc(N), VT, in visitFDIV()
6966 return DAG.getNode(ISD::FREM, SDLoc(N), VT, N0, N1); in visitFREM()
6979 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1); in visitFCOPYSIGN()
6987 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
6990 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, in visitFCOPYSIGN()
6991 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0)); in visitFCOPYSIGN()
7000 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFCOPYSIGN()
7005 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
7009 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFCOPYSIGN()
7015 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFCOPYSIGN()
7032 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
7040 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
7054 return DAG.getNode(ISD::SELECT_CC, SDLoc(N), VT, Ops); in visitSINT_TO_FP()
7067 return DAG.getNode(ISD::SELECT_CC, SDLoc(N), VT, Ops); in visitSINT_TO_FP()
7085 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
7093 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
7107 return DAG.getNode(ISD::SELECT_CC, SDLoc(N), VT, Ops); in visitUINT_TO_FP()
7121 return DAG.getNode(ISD::FP_TO_SINT, SDLoc(N), VT, N0); in visitFP_TO_SINT()
7133 return DAG.getNode(ISD::FP_TO_UINT, SDLoc(N), VT, N0); in visitFP_TO_UINT()
7146 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, N0, N1); in visitFP_ROUND()
7156 N0.getNode()->getConstantOperandVal(1) == 1; in visitFP_ROUND()
7157 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, N0.getOperand(0), in visitFP_ROUND()
7162 if (N0.getOpcode() == ISD::FCOPYSIGN && N0.getNode()->hasOneUse()) { in visitFP_ROUND()
7163 SDValue Tmp = DAG.getNode(ISD::FP_ROUND, SDLoc(N0), VT, in visitFP_ROUND()
7165 AddToWorkList(Tmp.getNode()); in visitFP_ROUND()
7166 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFP_ROUND()
7182 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, Round); in visitFP_ROUND_INREG()
7200 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, N0); in visitFP_EXTEND()
7205 && N0.getNode()->getConstantOperandVal(1) == 1) { in visitFP_EXTEND()
7209 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, in visitFP_EXTEND()
7211 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, In); in visitFP_EXTEND()
7215 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitFP_EXTEND()
7224 CombineTo(N0.getNode(), in visitFP_EXTEND()
7225 DAG.getNode(ISD::FP_ROUND, SDLoc(N0), in visitFP_EXTEND()
7240 if (FoldedVOp.getNode()) return FoldedVOp; in visitFNEG()
7251 N0.getNode()->hasOneUse() && in visitFNEG()
7256 Int = DAG.getNode(ISD::XOR, SDLoc(N0), IntVT, Int, in visitFNEG()
7258 AddToWorkList(Int.getNode()); in visitFNEG()
7259 return DAG.getNode(ISD::BITCAST, SDLoc(N), in visitFNEG()
7273 return DAG.getNode( in visitFNEG()
7275 DAG.getNode(ISD::FNEG, SDLoc(N), VT, N0.getOperand(1))); in visitFNEG()
7289 return DAG.getNode(ISD::FCEIL, SDLoc(N), VT, N0); in visitFCEIL()
7301 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0); in visitFTRUNC()
7313 return DAG.getNode(ISD::FFLOOR, SDLoc(N), VT, N0); in visitFFLOOR()
7325 if (FoldedVOp.getNode()) return FoldedVOp; in visitFABS()
7330 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFABS()
7337 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0)); in visitFABS()
7342 N0.getOpcode() == ISD::BITCAST && N0.getNode()->hasOneUse() && in visitFABS()
7348 Int = DAG.getNode(ISD::AND, SDLoc(N0), IntVT, Int, in visitFABS()
7350 AddToWorkList(Int.getNode()); in visitFABS()
7351 return DAG.getNode(ISD::BITCAST, SDLoc(N), in visitFABS()
7375 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBRCOND()
7387 Trunc = N1.getNode(); in visitBRCOND()
7426 SDValue NewBRCond = DAG.getNode(ISD::BRCOND, SDLoc(N), in visitBRCOND()
7439 removeFromWorkList(N1.getNode()); in visitBRCOND()
7440 DAG.DeleteNode(N1.getNode()); in visitBRCOND()
7454 SDNode *TheXor = N1.getNode(); in visitBRCOND()
7460 if (Tmp.getNode()) { in visitBRCOND()
7461 if (Tmp.getNode() != TheXor) { in visitBRCOND()
7465 Tmp.getNode()->dump(&DAG); in visitBRCOND()
7471 return DAG.getNode(ISD::BRCOND, SDLoc(N), in visitBRCOND()
7486 TheXor = Op0.getNode(); in visitBRCOND()
7500 removeFromWorkList(N1.getNode()); in visitBRCOND()
7501 DAG.DeleteNode(N1.getNode()); in visitBRCOND()
7502 return DAG.getNode(ISD::BRCOND, SDLoc(N), in visitBRCOND()
7526 if (Simp.getNode()) AddToWorkList(Simp.getNode()); in visitBR_CC()
7529 if (Simp.getNode() && Simp.getOpcode() == ISD::SETCC) in visitBR_CC()
7530 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBR_CC()
7546 if (LD->isIndexed() || LD->getBasePtr().getNode() != N) in canFoldInAddressingMode()
7550 if (ST->isIndexed() || ST->getBasePtr().getNode() != N) in canFoldInAddressingMode()
7616 Ptr.getNode()->hasOneUse()) in CombineToPreIndexedLoadStore()
7656 if (Val == BasePtr || BasePtr.getNode()->isPredecessorOf(Val.getNode())) in CombineToPreIndexedLoadStore()
7665 for (SDNode *Use : BasePtr.getNode()->uses()) { in CombineToPreIndexedLoadStore()
7666 if (Use == Ptr.getNode()) in CombineToPreIndexedLoadStore()
7678 if (Op1.getNode() == BasePtr.getNode()) in CombineToPreIndexedLoadStore()
7680 assert(Op0.getNode() == BasePtr.getNode() && in CombineToPreIndexedLoadStore()
7707 for (SDNode *Use : Ptr.getNode()->uses()) { in CombineToPreIndexedLoadStore()
7715 if (!canFoldInAddressingMode(Ptr.getNode(), Use, DAG, TLI)) in CombineToPreIndexedLoadStore()
7734 Result.getNode()->dump(&DAG); in CombineToPreIndexedLoadStore()
7753 if (OtherUses[i]->getOperand(OffsetIdx).getNode() == BasePtr.getNode()) in CombineToPreIndexedLoadStore()
7755 assert(OtherUses[i]->getOperand(!OffsetIdx).getNode() == in CombineToPreIndexedLoadStore()
7756 BasePtr.getNode() && "Expected BasePtr operand"); in CombineToPreIndexedLoadStore()
7791 SDValue NewUse = DAG.getNode(Opcode, in CombineToPreIndexedLoadStore()
7801 removeFromWorkList(Ptr.getNode()); in CombineToPreIndexedLoadStore()
7802 DAG.DeleteNode(Ptr.getNode()); in CombineToPreIndexedLoadStore()
7840 if (Ptr.getNode()->hasOneUse()) in CombineToPostIndexedLoadStore()
7843 for (SDNode *Op : Ptr.getNode()->uses()) { in CombineToPostIndexedLoadStore()
7869 for (SDNode *Use : BasePtr.getNode()->uses()) { in CombineToPostIndexedLoadStore()
7870 if (Use == Ptr.getNode()) in CombineToPostIndexedLoadStore()
7904 Result.getNode()->dump(&DAG); in CombineToPostIndexedLoadStore()
7951 Chain.getNode()->dump(&DAG); in visitLOAD()
7971 Undef.getNode()->dump(&DAG); in visitLOAD()
7990 if (ISD::isNON_TRUNCStore(Chain.getNode())) { in visitLOAD()
8009 return CombineTo(N, NewLoad, SDValue(NewLoad.getNode(), 1), true); in visitLOAD()
8041 SDValue Token = DAG.getNode(ISD::TokenFactor, SDLoc(N), in visitLOAD()
8045 AddToWorkList(Token.getNode()); in visitLOAD()
8303 BaseAddr = DAG->getNode(ISD::ADD, SDLoc(Origin), ArithType, BaseAddr, in loadSlice()
8320 DAG->getNode(ISD::ZERO_EXTEND, SDLoc(LastInst), FinalType, LastInst); in loadSlice()
8596 if (SliceInst.getNode()->getOpcode() != ISD::LOAD) in SliceUpLoad()
8603 SDValue Chain = DAG.getNode(ISD::TokenFactor, SDLoc(LD), MVT::Other, in SliceUpLoad()
8619 !ISD::isNormalLoad(V->getOperand(0).getNode())) in CheckForMaskedLoad()
8628 if (LD == Chain.getNode()) in CheckForMaskedLoad()
8635 if (Chain->getOperand(i).getNode() == LD) { in CheckForMaskedLoad()
8711 IVal = DAG.getNode(ISD::SRL, SDLoc(IVal), IVal.getValueType(), IVal, in ShrinkLoadReplaceStoreWithStore()
8726 Ptr = DAG.getNode(ISD::ADD, SDLoc(IVal), Ptr.getValueType(), in ShrinkLoadReplaceStoreWithStore()
8732 IVal = DAG.getNode(ISD::TRUNCATE, SDLoc(IVal), VT, IVal); in ShrinkLoadReplaceStoreWithStore()
8737 false, false, NewAlign).getNode(); in ShrinkLoadReplaceStoreWithStore()
8786 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in ReduceLoadOpStoreWidth()
8787 Chain == SDValue(N0.getNode(), 1)) { in ReduceLoadOpStoreWidth()
8836 SDValue NewPtr = DAG.getNode(ISD::ADD, SDLoc(LD), in ReduceLoadOpStoreWidth()
8845 SDValue NewVal = DAG.getNode(Opc, SDLoc(Value), NewVT, NewLD, in ReduceLoadOpStoreWidth()
8852 AddToWorkList(NewPtr.getNode()); in ReduceLoadOpStoreWidth()
8853 AddToWorkList(NewLD.getNode()); in ReduceLoadOpStoreWidth()
8854 AddToWorkList(NewVal.getNode()); in ReduceLoadOpStoreWidth()
8873 if (ISD::isNormalStore(ST) && ISD::isNormalLoad(Value.getNode()) && in TransformFPLoadStorePair()
8875 Chain == SDValue(Value.getNode(), 1)) { in TransformFPLoadStorePair()
8910 AddToWorkList(NewLD.getNode()); in TransformFPLoadStorePair()
8911 AddToWorkList(NewST.getNode()); in TransformFPLoadStorePair()
9051 if (!BasePtr.Base.getNode()) in MergeConsecutiveStores()
9112 SDNode *NextInChain = Index->getChain().getNode(); in MergeConsecutiveStores()
9126 NextInChain = Ldn->getChain().getNode(); in MergeConsecutiveStores()
9348 if (LdBasePtr.Base.getNode()) { in MergeConsecutiveStores()
9460 SDValue(NewLoad.getNode(), 1)); in MergeConsecutiveStores()
9566 Ptr = DAG.getNode(ISD::ADD, SDLoc(N), Ptr.getValueType(), Ptr, in visitSTORE()
9573 return DAG.getNode(ISD::TokenFactor, SDLoc(N), MVT::Other, in visitSTORE()
9596 if (NewST.getNode()) in visitSTORE()
9624 SDValue Token = DAG.getNode(ISD::TokenFactor, SDLoc(N), in visitSTORE()
9628 AddToWorkList(Token.getNode()); in visitSTORE()
9650 AddToWorkList(Value.getNode()); in visitSTORE()
9651 if (Shorter.getNode()) in visitSTORE()
9680 && Value.getNode()->hasOneUse() && ST->isUnindexed() && in visitSTORE()
9742 SDValue NewOp = DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(N), VT, in visitINSERT_VECTOR_ELT()
9744 AddToWorkList(NewOp.getNode()); in visitINSERT_VECTOR_ELT()
9745 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(InVec.getNode()), in visitINSERT_VECTOR_ELT()
9757 Ops.append(InVec.getNode()->op_begin(), in visitINSERT_VECTOR_ELT()
9758 InVec.getNode()->op_end()); in visitINSERT_VECTOR_ELT()
9773 DAG.getNode(ISD::ANY_EXTEND, dl, OpVT, InVal) : in visitINSERT_VECTOR_ELT()
9774 DAG.getNode(ISD::TRUNCATE, dl, OpVT, InVal); in visitINSERT_VECTOR_ELT()
9779 return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, Ops); in visitINSERT_VECTOR_ELT()
9807 Offset = DAG.getNode( in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9811 Offset = DAG.getNode( in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9816 NewPtr = DAG.getNode(ISD::ADD, SDLoc(EVE), PtrType, NewPtr, Offset); in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9844 Load = DAG.getNode(ISD::TRUNCATE, SDLoc(EVE), ResultVT, Load); in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9846 Load = DAG.getNode(ISD::BITCAST, SDLoc(EVE), ResultVT, Load); in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9854 AddToWorkList(Load.getNode()); in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9855 AddUsersToWorkList(Load.getNode()); // Add users too in ReplaceExtractVectorEltOfLoadWithNarrowedLoad()
9925 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(N), NVT, in visitEXTRACT_VECTOR_ELT()
9955 ISD::isNormalLoad(InVec.getNode())) { in visitEXTRACT_VECTOR_ELT()
9975 if (ISD::isNormalLoad(InVec.getNode())) { in visitEXTRACT_VECTOR_ELT()
9979 ISD::isNormalLoad(InVec.getOperand(0).getNode())) { in visitEXTRACT_VECTOR_ELT()
10011 if (ISD::isNormalLoad(InVec.getNode())) { in visitEXTRACT_VECTOR_ELT()
10135 SDValue BV = DAG.getNode(ISD::BUILD_VECTOR, dl, VecVT, Ops); in reduceBuildVecExtToExtBuildVec()
10138 AddToWorkList(BV.getNode()); in reduceBuildVecExtToExtBuildVec()
10140 return DAG.getNode(ISD::BITCAST, dl, VT, BV); in reduceBuildVecExtToExtBuildVec()
10203 SDValue BV = DAG.getNode(ISD::BUILD_VECTOR, dl, NVT, Opnds); in reduceBuildVecConvertToConvertBuildVec()
10204 AddToWorkList(BV.getNode()); in reduceBuildVecConvertToConvertBuildVec()
10206 return DAG.getNode(Opcode, dl, VT, BV); in reduceBuildVecConvertToConvertBuildVec()
10219 if (V.getNode()) in visitBUILD_VECTOR()
10223 if (V.getNode()) in visitBUILD_VECTOR()
10253 if (!VecIn1.getNode()) { in visitBUILD_VECTOR()
10255 } else if (!VecIn2.getNode()) { in visitBUILD_VECTOR()
10265 if (VecIn1.getNode()) { in visitBUILD_VECTOR()
10294 if (VecIn2.getNode()) in visitBUILD_VECTOR()
10309 VecIn1 = DAG.getNode(ISD::CONCAT_VECTORS, dl, VT, in visitBUILD_VECTOR()
10314 VecIn2 = VecIn2.getNode() ? VecIn2 : DAG.getUNDEF(VT); in visitBUILD_VECTOR()
10372 SDValue Res = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, NVT, Scalar); in visitCONCAT_VECTORS()
10373 return DAG.getNode(ISD::BITCAST, dl, VT, Res); in visitCONCAT_VECTORS()
10400 Opnds.push_back(DAG.getNode(ISD::TRUNCATE, SDLoc(N), MinTy, in visitCONCAT_VECTORS()
10403 Opnds.push_back(DAG.getNode(ISD::TRUNCATE, SDLoc(N), MinTy, in visitCONCAT_VECTORS()
10407 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), VT, Opnds); in visitCONCAT_VECTORS()
10428 if (SingleSource.getNode()) { in visitCONCAT_VECTORS()
10452 if (SingleSource.getNode()) in visitCONCAT_VECTORS()
10505 return DAG.getNode(ISD::BITCAST, dl, NVT, V->getOperand(1)); in visitEXTRACT_SUBVECTOR()
10506 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, NVT, in visitEXTRACT_SUBVECTOR()
10507 DAG.getNode(ISD::BITCAST, dl, in visitEXTRACT_SUBVECTOR()
10564 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in partitionShuffleOfConcats()
10630 SDNode *V = N0.getNode(); in visitVECTOR_SHUFFLE()
10639 V = ConvInput.getNode(); in visitVECTOR_SHUFFLE()
10654 if (!Base.getNode()) in visitVECTOR_SHUFFLE()
10675 if (V.getNode()) in visitVECTOR_SHUFFLE()
10784 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, in visitINSERT_SUBVECTOR()
10790 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, in visitINSERT_SUBVECTOR()
10834 SDValue Zero = DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), RVT, ZeroOps); in XformToShuffleWithZero()
10835 LHS = DAG.getNode(ISD::BITCAST, dl, RVT, LHS); in XformToShuffleWithZero()
10837 return DAG.getNode(ISD::BITCAST, dl, VT, Shuf); in XformToShuffleWithZero()
10852 if (Shuffle.getNode()) return Shuffle; in SimplifyVBinOp()
10872 cast<ConstantSDNode>(RHSOp.getNode())->isNullValue()) || in SimplifyVBinOp()
10874 cast<ConstantFPSDNode>(RHSOp.getNode())->getValueAPF().isZero())) in SimplifyVBinOp()
10886 RHSOp = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, RHSOp); in SimplifyVBinOp()
10888 LHSOp = DAG.getNode(ISD::TRUNCATE, SDLoc(N), RVT, LHSOp); in SimplifyVBinOp()
10892 SDValue FoldOp = DAG.getNode(N->getOpcode(), SDLoc(LHS), VT, in SimplifyVBinOp()
10899 AddToWorkList(FoldOp.getNode()); in SimplifyVBinOp()
10903 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), LHS.getValueType(), Ops); in SimplifyVBinOp()
10919 SDValue NewBinOp = DAG.getNode(N->getOpcode(), SDLoc(N), VT, in SimplifyVBinOp()
10948 SDValue FoldOp = DAG.getNode(N->getOpcode(), SDLoc(N0), EltVT, Op); in SimplifyVUnaryOp()
10953 AddToWorkList(FoldOp.getNode()); in SimplifyVUnaryOp()
10959 return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), N0.getValueType(), Ops); in SimplifyVUnaryOp()
10972 if (SCC.getNode()) { in SimplifySelect()
10976 SDValue SETCC = DAG.getNode(ISD::SETCC, SDLoc(N0), in SimplifySelect()
10980 AddToWorkList(SETCC.getNode()); in SimplifySelect()
11043 SDNode *CondNode = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
11056 SDNode *CondLHS = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
11057 SDNode *CondRHS = TheSelect->getOperand(1).getNode(); in SimplifySelectOps()
11065 Addr = DAG.getNode(ISD::SELECT_CC, SDLoc(TheSelect), in SimplifySelectOps()
11097 CombineTo(LHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
11098 CombineTo(RHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
11114 ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1.getNode()); in SimplifySelectCC()
11115 ConstantSDNode *N2C = dyn_cast<ConstantSDNode>(N2.getNode()); in SimplifySelectCC()
11116 ConstantSDNode *N3C = dyn_cast<ConstantSDNode>(N3.getNode()); in SimplifySelectCC()
11121 if (SCC.getNode()) AddToWorkList(SCC.getNode()); in SimplifySelectCC()
11122 ConstantSDNode *SCCC = dyn_cast_or_null<ConstantSDNode>(SCC.getNode()); in SimplifySelectCC()
11139 return DAG.getNode(ISD::FABS, DL, VT, N0); in SimplifySelectCC()
11145 return DAG.getNode(ISD::FABS, DL, VT, N3); in SimplifySelectCC()
11189 AddToWorkList(Cond.getNode()); in SimplifySelectCC()
11192 AddToWorkList(CstOffset.getNode()); in SimplifySelectCC()
11193 CPIdx = DAG.getNode(ISD::ADD, DL, CPIdx.getValueType(), CPIdx, in SimplifySelectCC()
11195 AddToWorkList(CPIdx.getNode()); in SimplifySelectCC()
11218 SDValue Shift = DAG.getNode(ISD::SRL, SDLoc(N0), in SimplifySelectCC()
11220 AddToWorkList(Shift.getNode()); in SimplifySelectCC()
11223 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in SimplifySelectCC()
11224 AddToWorkList(Shift.getNode()); in SimplifySelectCC()
11227 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in SimplifySelectCC()
11230 SDValue Shift = DAG.getNode(ISD::SRA, SDLoc(N0), in SimplifySelectCC()
11234 AddToWorkList(Shift.getNode()); in SimplifySelectCC()
11237 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in SimplifySelectCC()
11238 AddToWorkList(Shift.getNode()); in SimplifySelectCC()
11241 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in SimplifySelectCC()
11263 SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N0), VT, AndLHS, ShlAmt); in SimplifySelectCC()
11270 SDValue Shr = DAG.getNode(ISD::SRA, SDLoc(N0), VT, Shl, ShrAmt); in SimplifySelectCC()
11272 return DAG.getNode(ISD::AND, DL, VT, Shr, N3); in SimplifySelectCC()
11300 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), in SimplifySelectCC()
11304 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), in SimplifySelectCC()
11308 AddToWorkList(SCC.getNode()); in SimplifySelectCC()
11309 AddToWorkList(Temp.getNode()); in SimplifySelectCC()
11315 return DAG.getNode( in SimplifySelectCC()
11331 Res = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Res); in SimplifySelectCC()
11339 SDValue Ctlz = DAG.getNode(ISD::CTLZ, SDLoc(N0), XType, N0); in SimplifySelectCC()
11340 return DAG.getNode(ISD::SRL, DL, XType, Ctlz, in SimplifySelectCC()
11346 SDValue NegN0 = DAG.getNode(ISD::SUB, SDLoc(N0), in SimplifySelectCC()
11349 return DAG.getNode(ISD::SRL, DL, XType, in SimplifySelectCC()
11350 DAG.getNode(ISD::AND, DL, XType, NegN0, NotN0), in SimplifySelectCC()
11356 SDValue Sign = DAG.getNode(ISD::SRL, SDLoc(N0), XType, N0, in SimplifySelectCC()
11359 return DAG.getNode(ISD::XOR, DL, XType, Sign, DAG.getConstant(1, XType)); in SimplifySelectCC()
11382 SDValue Shift = DAG.getNode(ISD::SRA, SDLoc(N0), XType, in SimplifySelectCC()
11386 SDValue Add = DAG.getNode(ISD::ADD, SDLoc(N0), in SimplifySelectCC()
11388 AddToWorkList(Shift.getNode()); in SimplifySelectCC()
11389 AddToWorkList(Add.getNode()); in SimplifySelectCC()
11390 return DAG.getNode(ISD::XOR, DL, XType, Add, Shift); in SimplifySelectCC()
11615 if (!Visited.insert(Chain.getNode())) in GatherAllAliases()
11626 bool IsOpLoad = isa<LoadSDNode>(Chain.getNode()) && in GatherAllAliases()
11627 !cast<LSBaseSDNode>(Chain.getNode())->isVolatile(); in GatherAllAliases()
11631 isAlias(cast<LSBaseSDNode>(N), cast<LSBaseSDNode>(Chain.getNode()))) { in GatherAllAliases()
11692 if (*I != OriginalChain.getNode()) in GatherAllAliases()
11737 return DAG.getNode(ISD::TokenFactor, SDLoc(N), MVT::Other, Aliases); in FindBetterChain()