Lines Matching refs:getNode

333       AddToWorklist(Op.getNode());  in SimplifyDemandedBits()
875 AddToWorklist(Op.getNode()); in deleteAndRecombine()
913 !TLI.isConstTrueVal(N.getOperand(2).getNode()) || in isSetCCEquivalent()
914 !TLI.isConstFalseVal(N.getOperand(3).getNode())) in isSetCCEquivalent()
932 if (isSetCCEquivalent(N, N0, N1, N2) && N.getNode()->hasOneUse()) in isOneUseSetCC()
990 ISD::isBuildVectorOfConstantFPSDNodes(V.getNode()); in isAnyConstantBuildVector()
1070 return DAG.getNode(Opc, DL, VT, N0.getOperand(0), OpNode); in reassociateOpsCommutative()
1076 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N0.getOperand(0), N1); in reassociateOpsCommutative()
1077 if (!OpNode.getNode()) in reassociateOpsCommutative()
1079 return DAG.getNode(Opc, DL, VT, OpNode, N0.getOperand(1)); in reassociateOpsCommutative()
1108 To[0].getNode()->dump(&DAG); in CombineTo()
1111 assert((!To[i].getNode() || in CombineTo()
1120 if (To[i].getNode()) { in CombineTo()
1121 AddToWorklist(To[i].getNode()); in CombineTo()
1122 AddUsersToWorklist(To[i].getNode()); in CombineTo()
1139 LLVM_DEBUG(dbgs() << "\nReplacing.2 "; TLO.Old.getNode()->dump(&DAG); in CommitTargetLoweringOpt()
1140 dbgs() << "\nWith: "; TLO.New.getNode()->dump(&DAG); in CommitTargetLoweringOpt()
1149 AddToWorklistWithUsers(TLO.New.getNode()); in CommitTargetLoweringOpt()
1154 if (TLO.Old.getNode()->use_empty()) in CommitTargetLoweringOpt()
1155 deleteAndRecombine(TLO.Old.getNode()); in CommitTargetLoweringOpt()
1170 AddToWorklist(Op.getNode()); in SimplifyDemandedBits()
1189 AddToWorklist(Op.getNode()); in SimplifyDemandedVectorElts()
1198 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, DL, VT, SDValue(ExtLoad, 0)); in ReplaceLoadWithPromotedLoad()
1201 Trunc.getNode()->dump(&DAG); dbgs() << '\n'); in ReplaceLoadWithPromotedLoad()
1206 AddToWorklist(Trunc.getNode()); in ReplaceLoadWithPromotedLoad()
1212 if (ISD::isUNINDEXEDLoad(Op.getNode())) { in PromoteOperand()
1228 return DAG.getNode(ISD::AssertSext, DL, PVT, Op0, Op.getOperand(1)); in PromoteOperand()
1232 return DAG.getNode(ISD::AssertZext, DL, PVT, Op0, Op.getOperand(1)); in PromoteOperand()
1237 return DAG.getNode(ExtOpc, DL, PVT, Op); in PromoteOperand()
1243 return DAG.getNode(ISD::ANY_EXTEND, DL, PVT, Op); in PromoteOperand()
1253 if (!NewOp.getNode()) in SExtPromoteOperand()
1255 AddToWorklist(NewOp.getNode()); in SExtPromoteOperand()
1258 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in SExtPromoteOperand()
1259 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, NewOp.getValueType(), NewOp, in SExtPromoteOperand()
1268 if (!NewOp.getNode()) in ZExtPromoteOperand()
1270 AddToWorklist(NewOp.getNode()); in ZExtPromoteOperand()
1273 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in ZExtPromoteOperand()
1300 LLVM_DEBUG(dbgs() << "\nPromoting "; Op.getNode()->dump(&DAG)); in PromoteIntBinOp()
1312 DAG.getNode(ISD::TRUNCATE, DL, VT, DAG.getNode(Opc, DL, PVT, NN0, NN1)); in PromoteIntBinOp()
1323 CombineTo(Op.getNode(), RV); in PromoteIntBinOp()
1327 if (Replace0 && Replace1 && N0.getNode()->isPredecessorOf(N1.getNode())) { in PromoteIntBinOp()
1333 AddToWorklist(NN0.getNode()); in PromoteIntBinOp()
1334 ReplaceLoadWithPromotedLoad(N0.getNode(), NN0.getNode()); in PromoteIntBinOp()
1337 AddToWorklist(NN1.getNode()); in PromoteIntBinOp()
1338 ReplaceLoadWithPromotedLoad(N1.getNode(), NN1.getNode()); in PromoteIntBinOp()
1368 LLVM_DEBUG(dbgs() << "\nPromoting "; Op.getNode()->dump(&DAG)); in PromoteIntShiftOp()
1380 if (!N0.getNode()) in PromoteIntShiftOp()
1385 DAG.getNode(ISD::TRUNCATE, DL, VT, DAG.getNode(Opc, DL, PVT, N0, N1)); in PromoteIntShiftOp()
1388 ReplaceLoadWithPromotedLoad(Op.getOperand(0).getNode(), N0.getNode()); in PromoteIntShiftOp()
1419 LLVM_DEBUG(dbgs() << "\nPromoting "; Op.getNode()->dump(&DAG)); in PromoteExtend()
1420 return DAG.getNode(Op.getOpcode(), SDLoc(Op), VT, Op.getOperand(0)); in PromoteExtend()
1429 if (!ISD::isUNINDEXEDLoad(Op.getNode())) in PromoteLoad()
1449 SDNode *N = Op.getNode(); in PromoteLoad()
1457 SDValue Result = DAG.getNode(ISD::TRUNCATE, DL, VT, NewLD); in PromoteLoad()
1460 Result.getNode()->dump(&DAG); dbgs() << '\n'); in PromoteLoad()
1465 AddToWorklist(Result.getNode()); in PromoteLoad()
1490 Nodes.insert(ChildN.getNode()); in recursivelyDeleteUnusedNodes()
1553 if (!CombinedNodes.count(ChildN.getNode())) in Run()
1554 AddToWorklist(ChildN.getNode()); in Run()
1558 if (!RV.getNode()) in Run()
1567 if (RV.getNode() == N) in Run()
1574 LLVM_DEBUG(dbgs() << " ... into: "; RV.getNode()->dump(&DAG)); in Run()
1576 if (N->getNumValues() == RV.getNode()->getNumValues()) in Run()
1577 DAG.ReplaceAllUsesWith(N, RV.getNode()); in Run()
1590 AddToWorklist(RV.getNode()); in Run()
1591 AddUsersToWorklist(RV.getNode()); in Run()
1751 if (!RV.getNode()) { in combine()
1767 if (!RV.getNode()) { in combine()
1797 if (!RV.getNode() && TLI.isCommutativeBinOp(N->getOpcode()) && in combine()
1834 if (getInputChainForNode(N->getOperand(0).getNode()) == N->getOperand(1)) in visitTokenFactor()
1836 if (getInputChainForNode(N->getOperand(1).getNode()) == N->getOperand(0)) in visitTokenFactor()
1888 if (Op.hasOneUse() && !is_contained(TFs, Op.getNode())) { in visitTokenFactor()
1890 TFs.push_back(Op.getNode()); in visitTokenFactor()
1898 if (SeenOps.insert(Op.getNode()).second) in visitTokenFactor()
1926 Worklist.push_back(std::make_pair(Op.getNode(), NumLeftToConsider++)); in visitTokenFactor()
1937 while (OrigOpNumber < Ops.size() && Ops[OrigOpNumber].getNode() != Op) in visitTokenFactor()
1976 AddToWorklist(i, Op.getNode(), CurOpNumber); in visitTokenFactor()
1982 AddToWorklist(i, CurNode->getOperand(0).getNode(), CurOpNumber); in visitTokenFactor()
1986 AddToWorklist(i, MemNode->getChain().getNode(), CurOpNumber); in visitTokenFactor()
2005 if (SeenChains.count(Op.getNode()) == 0) in visitTokenFactor()
2053 if (LD->isIndexed() || LD->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2058 if (ST->isIndexed() || ST->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2063 if (LD->isIndexed() || LD->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2068 if (ST->isIndexed() || ST->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2151 SDValue NewCT = SelOpNo ? DAG.getNode(BinOpcode, DL, VT, CBO, CT) in foldBinOpIntoSelect()
2152 : DAG.getNode(BinOpcode, DL, VT, CT, CBO); in foldBinOpIntoSelect()
2158 SDValue NewCF = SelOpNo ? DAG.getNode(BinOpcode, DL, VT, CBO, CF) in foldBinOpIntoSelect()
2159 : DAG.getNode(BinOpcode, DL, VT, CF, CBO); in foldBinOpIntoSelect()
2206 return DAG.getNode(IsAdd ? ISD::SUB : ISD::ADD, DL, VT, C1, LowBit); in foldAddSubBoolOfMaskedVal()
2241 SDValue NewShift = DAG.getNode(ShOpcode, DL, VT, Not.getOperand(0), ShAmt); in foldAddSubOfSignBit()
2245 return DAG.getNode(ISD::ADD, DL, VT, NewShift, NewC); in foldAddSubOfSignBit()
2264 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitADDLike()
2266 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitADDLike()
2280 return DAG.getNode(ISD::ADD, DL, VT, N1, N0); in visitADDLike()
2296 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), Sub); in visitADDLike()
2305 return DAG.getNode(ISD::SUB, DL, VT, Add, N0.getOperand(1)); in visitADDLike()
2320 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Not); in visitADDLike()
2331 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), Add0); in visitADDLike()
2349 return DAG.getNode(ISD::ADD, DL, VT, in visitADDLike()
2350 DAG.getNode(ISD::ADD, DL, VT, N1, N0.getOperand(0)), in visitADDLike()
2362 return DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1)); in visitADDLike()
2366 return DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(1)); in visitADDLike()
2379 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2385 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), in visitADDLike()
2391 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2397 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2404 return DAG.getNode(N1.getOpcode(), DL, VT, N1.getOperand(0).getOperand(0), in visitADDLike()
2415 return DAG.getNode(ISD::SUB, DL, VT, in visitADDLike()
2416 DAG.getNode(ISD::ADD, SDLoc(N0), VT, N00, N10), in visitADDLike()
2417 DAG.getNode(ISD::ADD, SDLoc(N1), VT, N01, N11)); in visitADDLike()
2428 return DAG.getNode(ISD::USUBSAT, DL, VT, N0.getOperand(0), in visitADDLike()
2438 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), in visitADDLike()
2454 return DAG.getNode(ISD::SUB, DL, VT, A, Xor.getOperand(0)); in visitADDLike()
2463 SDValue Not = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0), in visitADDLike()
2465 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(1), Not); in visitADDLike()
2472 SDValue Xor = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), N1); in visitADDLike()
2473 return DAG.getNode(ISD::ADD, DL, VT, Xor, N0.getOperand(0)); in visitADDLike()
2503 return DAG.getNode(ISD::OR, DL, VT, N0, N1); in visitADD()
2519 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), VS); in visitADD()
2539 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), SV); in visitADD()
2557 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitADDSAT()
2559 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitADDSAT()
2570 return DAG.getNode(Opcode, DL, VT, N1, N0); in visitADDSAT()
2582 return DAG.getNode(ISD::ADD, DL, VT, N0, N1); in visitADDSAT()
2614 EVT VT = V.getNode()->getValueType(0); in getAsCarry()
2643 return DAG.getNode(IsAdd ? ISD::SUB : ISD::ADD, DL, VT, N0, N1.getOperand(0)); in foldAddSubMasked1()
2655 return DAG.getNode(ISD::SUB, DL, VT, N0, in visitADDLikeCommutative()
2656 DAG.getNode(ISD::SHL, DL, VT, in visitADDLikeCommutative()
2669 SDValue Not = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0), in visitADDLikeCommutative()
2671 return DAG.getNode(ISD::SUB, DL, VT, N1, Not); in visitADDLikeCommutative()
2679 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), N1); in visitADDLikeCommutative()
2680 return DAG.getNode(ISD::SUB, DL, VT, Add, N0.getOperand(1)); in visitADDLikeCommutative()
2686 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1)); in visitADDLikeCommutative()
2687 return DAG.getNode(ISD::ADD, DL, VT, Sub, N0.getOperand(0)); in visitADDLikeCommutative()
2696 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitADDLikeCommutative()
2697 return DAG.getNode(ISD::SUB, DL, VT, N1, ZExt); in visitADDLikeCommutative()
2704 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitADDLikeCommutative()
2706 return DAG.getNode(ISD::SUB, DL, VT, N0, ZExt); in visitADDLikeCommutative()
2713 return DAG.getNode(ISD::ADDCARRY, DL, N1->getVTList(), in visitADDLikeCommutative()
2719 return DAG.getNode(ISD::ADDCARRY, DL, in visitADDLikeCommutative()
2734 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDC()
2735 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitADDC()
2741 return DAG.getNode(ISD::ADDC, DL, N->getVTList(), N1, N0); in visitADDC()
2745 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
2750 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDC()
2751 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitADDC()
2809 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDO()
2815 return DAG.getNode(N->getOpcode(), DL, N->getVTList(), N1, N0); in visitADDO()
2824 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDO()
2829 SDValue Sub = DAG.getNode(ISD::USUBO, DL, N->getVTList(), in visitADDO()
2856 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), N0, Y, in visitUADDOLike()
2863 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), N0, in visitUADDOLike()
2878 return DAG.getNode(ISD::ADDE, SDLoc(N), N->getVTList(), in visitADDE()
2883 return DAG.getNode(ISD::ADDC, SDLoc(N), N->getVTList(), N0, N1); in visitADDE()
2898 return DAG.getNode(ISD::ADDCARRY, DL, N->getVTList(), N1, N0, CarryIn); in visitADDCARRY()
2904 return DAG.getNode(ISD::UADDO, DL, N->getVTList(), N0, N1); in visitADDCARRY()
2912 AddToWorklist(CarryExt.getNode()); in visitADDCARRY()
2913 return CombineTo(N, DAG.getNode(ISD::AND, DL, VT, CarryExt, in visitADDCARRY()
2937 return DAG.getNode(ISD::SADDO_CARRY, DL, N->getVTList(), N1, N0, CarryIn); in visitSADDO_CARRY()
2943 return DAG.getNode(ISD::SADDO, DL, N->getVTList(), N0, N1); in visitSADDO_CARRY()
3000 SDValue NewY = DAG.getNode(ISD::ADDCARRY, DL, Carry0->getVTList(), A, B, Z); in combineADDCARRYDiamond()
3001 Combiner.AddToWorklist(NewY.getNode()); in combineADDCARRYDiamond()
3002 return DAG.getNode(ISD::ADDCARRY, DL, N->getVTList(), X, in combineADDCARRYDiamond()
3104 DAG.getNode(NewOp, DL, Carry1->getVTList(), Carry0.getOperand(0), in combineCarryDiamond()
3132 SDValue Sub = DAG.getNode(ISD::SUBCARRY, DL, N->getVTList(), N1, in visitADDCARRYLike()
3146 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), in visitADDCARRYLike()
3174 return DAG.getNode(ISD::USUBSAT, DL, DstVT, LHS, RHS); in getTruncatedUSUBSAT()
3187 RHS = DAG.getNode(ISD::UMIN, DL, SrcVT, RHS, SatLimit); in getTruncatedUSUBSAT()
3188 RHS = DAG.getNode(ISD::TRUNCATE, DL, DstVT, RHS); in getTruncatedUSUBSAT()
3189 LHS = DAG.getNode(ISD::TRUNCATE, DL, DstVT, LHS); in getTruncatedUSUBSAT()
3190 return DAG.getNode(ISD::USUBSAT, DL, DstVT, LHS, RHS); in getTruncatedUSUBSAT()
3264 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitSUB()
3284 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3299 return DAG.getNode(NewSh, DL, VT, N1.getOperand(0), N1.getOperand(1)); in visitSUB()
3321 TLI.expandABS(N1.getNode(), Result, DAG, true)) in visitSUB()
3338 return DAG.getNode(ISD::XOR, DL, VT, N1, N0); in visitSUB()
3342 return DAG.getNode(ISD::ADD, DL, VT, N0, N1.getOperand(1)); in visitSUB()
3363 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), NewC); in visitSUB()
3373 return DAG.getNode(ISD::SUB, DL, VT, NewC, N1.getOperand(0)); in visitSUB()
3384 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), NewC); in visitSUB()
3394 return DAG.getNode(ISD::SUB, DL, VT, NewC, N0.getOperand(1)); in visitSUB()
3402 return DAG.getNode(N0.getOperand(1).getOpcode(), DL, VT, N0.getOperand(0), in visitSUB()
3408 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), in visitSUB()
3414 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), in visitSUB()
3419 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3420 DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(1), in visitSUB()
3432 DAG.getNode(ISD::XOR, DL, VT, B, DAG.getAllOnesConstant(DL, VT)); in visitSUB()
3433 return DAG.getNode(ISD::AND, DL, VT, A, InvB); in visitSUB()
3441 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, in visitSUB()
3444 return DAG.getNode(ISD::ADD, DL, VT, N0, Mul); in visitSUB()
3448 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, in visitSUB()
3451 return DAG.getNode(ISD::ADD, DL, VT, N0, Mul); in visitSUB()
3475 SDValue Xor = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), in visitSUB()
3477 return DAG.getNode(ISD::ADD, DL, VT, Xor, N0.getOperand(0)); in visitSUB()
3485 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0, N1.getOperand(0)); in visitSUB()
3486 return DAG.getNode(ISD::ADD, DL, VT, Add, DAG.getConstant(1, DL, VT)); in visitSUB()
3493 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), N1); in visitSUB()
3494 return DAG.getNode(ISD::ADD, DL, VT, Sub, N0.getOperand(1)); in visitSUB()
3499 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(0)); in visitSUB()
3500 return DAG.getNode(ISD::SUB, DL, VT, Sub, N1.getOperand(1)); in visitSUB()
3506 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), N1); in visitSUB()
3507 return DAG.getNode(ISD::SUB, DL, VT, Sub, N0.getOperand(1)); in visitSUB()
3512 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(1), N1); in visitSUB()
3513 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), Add); in visitSUB()
3523 SDValue SExt = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, N1.getOperand(0)); in visitSUB()
3524 return DAG.getNode(ISD::ADD, DL, VT, N0, SExt); in visitSUB()
3535 return DAG.getNode(ISD::ABS, SDLoc(N), VT, S0); in visitSUB()
3558 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitSUB()
3560 return DAG.getNode(ISD::ADD, DL, VT, N0, ZExt); in visitSUB()
3567 return DAG.getNode(ISD::ADD, DL, VT, N0, DAG.getVScale(DL, VT, -IntVal)); in visitSUB()
3573 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3584 SDValue SRA = DAG.getNode(ISD::SRA, DL, VT, N1.getOperand(0), ShAmt); in visitSUB()
3585 return DAG.getNode(ISD::ADD, DL, VT, N0, SRA); in visitSUB()
3594 SDValue NegX = DAG.getNode(ISD::SUB, DL, VT, Zero, X); in visitSUB()
3595 return DAG.getNode(ISD::ADDCARRY, DL, in visitSUB()
3615 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitSUBSAT()
3646 return CombineTo(N, DAG.getNode(ISD::SUB, DL, VT, N0, N1), in visitSUBC()
3647 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3652 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3656 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3660 return CombineTo(N, DAG.getNode(ISD::XOR, DL, VT, N1, N0), in visitSUBC()
3661 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3677 return CombineTo(N, DAG.getNode(ISD::SUB, DL, VT, N0, N1), in visitSUBO()
3689 return DAG.getNode(ISD::SADDO, DL, N->getVTList(), N0, in visitSUBO()
3699 return CombineTo(N, DAG.getNode(ISD::XOR, DL, VT, N1, N0), in visitSUBO()
3712 return DAG.getNode(ISD::SUBC, SDLoc(N), N->getVTList(), N0, N1); in visitSUBE()
3726 return DAG.getNode(ISD::USUBO, SDLoc(N), N->getVTList(), N0, N1); in visitSUBCARRY()
3741 return DAG.getNode(ISD::SSUBO, SDLoc(N), N->getVTList(), N0, N1); in visitSSUBO_CARRY()
3762 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N1, N0, Scale); in visitMULFIX()
3789 N1IsConst = ISD::isConstantSplatVector(N1.getNode(), ConstValue1); in visitMUL()
3808 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N1, N0); in visitMUL()
3824 return DAG.getNode(ISD::SUB, DL, VT, in visitMUL()
3836 return DAG.getNode(ISD::SHL, DL, VT, N0, Trunc); in visitMUL()
3845 return DAG.getNode(ISD::SUB, DL, VT, in visitMUL()
3847 DAG.getNode(ISD::SHL, DL, VT, N0, in visitMUL()
3889 DAG.getNode(ISD::SHL, DL, VT, N0, DAG.getConstant(ShAmt, DL, VT)); in visitMUL()
3891 TZeros ? DAG.getNode(MathOp, DL, VT, Shl, in visitMUL()
3892 DAG.getNode(ISD::SHL, DL, VT, N0, in visitMUL()
3894 : DAG.getNode(MathOp, DL, VT, Shl, N0); in visitMUL()
3896 R = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), R); in visitMUL()
3905 SDValue C3 = DAG.getNode(ISD::SHL, SDLoc(N), VT, N1, N0.getOperand(1)); in visitMUL()
3907 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N0.getOperand(0), C3); in visitMUL()
3918 N0.getNode()->hasOneUse()) { in visitMUL()
3922 N1.getNode()->hasOneUse()) { in visitMUL()
3926 if (Sh.getNode()) { in visitMUL()
3927 SDValue Mul = DAG.getNode(ISD::MUL, SDLoc(N), VT, Sh.getOperand(0), Y); in visitMUL()
3928 return DAG.getNode(ISD::SHL, SDLoc(N), VT, Mul, Sh.getOperand(1)); in visitMUL()
3937 return DAG.getNode(ISD::ADD, SDLoc(N), VT, in visitMUL()
3938 DAG.getNode(ISD::MUL, SDLoc(N0), VT, in visitMUL()
3940 DAG.getNode(ISD::MUL, SDLoc(N1), VT, in visitMUL()
3954 if (ISD::isConstantSplatVector(N1.getNode(), MulVal)) { in visitMUL()
3987 return DAG.getNode(ISD::AND, DL, VT, N0, DAG.getBuildVector(VT, DL, Mask)); in visitMUL()
4055 for (SDNode::use_iterator UI = Op0.getNode()->use_begin(), in useDivRem()
4056 UE = Op0.getNode()->use_end(); UI != UE; ++UI) { in useDivRem()
4071 combined = DAG.getNode(DivRemOpc, SDLoc(Node), VTs, Op0, Op1); in useDivRem()
4154 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), N0); in visitSDIV()
4171 return DAG.getNode(ISD::UDIV, DL, N1.getValueType(), N0, N1); in visitSDIV()
4178 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, V, N1); in visitSDIV()
4179 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitSDIV()
4180 AddToWorklist(Mul.getNode()); in visitSDIV()
4181 AddToWorklist(Sub.getNode()); in visitSDIV()
4228 SDValue C1 = DAG.getNode(ISD::CTTZ, DL, VT, N1); in visitSDIVLike()
4230 SDValue Inexact = DAG.getNode(ISD::SUB, DL, ShiftAmtTy, Bits, C1); in visitSDIVLike()
4235 SDValue Sign = DAG.getNode(ISD::SRA, DL, VT, N0, in visitSDIVLike()
4237 AddToWorklist(Sign.getNode()); in visitSDIVLike()
4240 SDValue Srl = DAG.getNode(ISD::SRL, DL, VT, Sign, Inexact); in visitSDIVLike()
4241 AddToWorklist(Srl.getNode()); in visitSDIVLike()
4242 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0, Srl); in visitSDIVLike()
4243 AddToWorklist(Add.getNode()); in visitSDIVLike()
4244 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Add, C1); in visitSDIVLike()
4245 AddToWorklist(Sra.getNode()); in visitSDIVLike()
4253 SDValue IsOneOrAllOnes = DAG.getNode(ISD::OR, DL, CCVT, IsOne, IsAllOnes); in visitSDIVLike()
4259 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, Zero, Sra); in visitSDIVLike()
4314 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, V, N1); in visitUDIV()
4315 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitUDIV()
4316 AddToWorklist(Mul.getNode()); in visitUDIV()
4317 AddToWorklist(Sub.getNode()); in visitUDIV()
4342 AddToWorklist(LogBase2.getNode()); in visitUDIVLike()
4346 AddToWorklist(Trunc.getNode()); in visitUDIVLike()
4347 return DAG.getNode(ISD::SRL, DL, VT, N0, Trunc); in visitUDIVLike()
4356 AddToWorklist(LogBase2.getNode()); in visitUDIVLike()
4360 AddToWorklist(Trunc.getNode()); in visitUDIVLike()
4361 SDValue Add = DAG.getNode(ISD::ADD, DL, ADDVT, N1.getOperand(1), Trunc); in visitUDIVLike()
4362 AddToWorklist(Add.getNode()); in visitUDIVLike()
4363 return DAG.getNode(ISD::SRL, DL, VT, N0, Add); in visitUDIVLike()
4408 return DAG.getNode(ISD::UREM, DL, VT, N0, N1); in visitREM()
4413 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N1, NegOne); in visitREM()
4414 AddToWorklist(Add.getNode()); in visitREM()
4415 return DAG.getNode(ISD::AND, DL, VT, N0, Add); in visitREM()
4421 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N1, NegOne); in visitREM()
4422 AddToWorklist(Add.getNode()); in visitREM()
4423 return DAG.getNode(ISD::AND, DL, VT, N0, Add); in visitREM()
4439 if (OptimizedDiv.getNode()) { in visitREM()
4445 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, OptimizedDiv, N1); in visitREM()
4446 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitREM()
4447 AddToWorklist(OptimizedDiv.getNode()); in visitREM()
4448 AddToWorklist(Mul.getNode()); in visitREM()
4469 if (ISD::isConstantSplatVectorAllZeros(N0.getNode()) || in visitMULHS()
4470 ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitMULHS()
4483 return DAG.getNode(ISD::SRA, DL, N0.getValueType(), N0, in visitMULHS()
4499 N0 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N0); in visitMULHS()
4500 N1 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N1); in visitMULHS()
4501 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHS()
4502 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHS()
4505 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHS()
4521 if (ISD::isConstantSplatVectorAllZeros(N0.getNode()) || in visitMULHU()
4522 ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitMULHU()
4545 SDValue SRLAmt = DAG.getNode( in visitMULHU()
4549 return DAG.getNode(ISD::SRL, DL, VT, N0, Trunc); in visitMULHU()
4560 N0 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N0); in visitMULHU()
4561 N1 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N1); in visitMULHU()
4562 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHU()
4563 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHU()
4566 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHU()
4582 SDValue Res = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), N->ops()); in SimplifyNodeWithTwoResults()
4590 SDValue Res = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), N->ops()); in SimplifyNodeWithTwoResults()
4600 SDValue Lo = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), N->ops()); in SimplifyNodeWithTwoResults()
4601 AddToWorklist(Lo.getNode()); in SimplifyNodeWithTwoResults()
4602 SDValue LoOpt = combine(Lo.getNode()); in SimplifyNodeWithTwoResults()
4603 if (LoOpt.getNode() && LoOpt.getNode() != Lo.getNode() && in SimplifyNodeWithTwoResults()
4610 SDValue Hi = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), N->ops()); in SimplifyNodeWithTwoResults()
4611 AddToWorklist(Hi.getNode()); in SimplifyNodeWithTwoResults()
4612 SDValue HiOpt = combine(Hi.getNode()); in SimplifyNodeWithTwoResults()
4613 if (HiOpt.getNode() && HiOpt != Hi && in SimplifyNodeWithTwoResults()
4636 SDValue Lo = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(0)); in visitSMUL_LOHI()
4637 SDValue Hi = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(1)); in visitSMUL_LOHI()
4638 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitSMUL_LOHI()
4640 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitSMUL_LOHI()
4643 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitSMUL_LOHI()
4645 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitSMUL_LOHI()
4679 SDValue Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(0)); in visitUMUL_LOHI()
4680 SDValue Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(1)); in visitUMUL_LOHI()
4681 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitUMUL_LOHI()
4683 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitUMUL_LOHI()
4686 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitUMUL_LOHI()
4688 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitUMUL_LOHI()
4723 return DAG.getNode(N->getOpcode(), DL, N->getVTList(), N1, N0); in visitMULO()
4732 return DAG.getNode(IsSigned ? ISD::SADDO : ISD::UADDO, DL, in visitMULO()
4738 SDValue And = DAG.getNode(ISD::AND, DL, VT, N0, N1); in visitMULO()
4751 return CombineTo(N, DAG.getNode(ISD::MUL, DL, VT, N0, N1), in visitMULO()
4759 return CombineTo(N, DAG.getNode(ISD::MUL, DL, VT, N0, N1), in visitMULO()
4784 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N1, N0); in visitIMINMAX()
4800 return DAG.getNode(AltOpcode, SDLoc(N), VT, N0, N1); in visitIMINMAX()
4853 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
4854 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
4875 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
4876 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
4887 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
4888 return DAG.getNode(HandOpcode, DL, VT, Logic, N0.getOperand(1)); in hoistLogicOpWithSameOpcodeHands()
4896 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
4897 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
4913 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
4914 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
4951 if (N0.getOperand(1) == N1.getOperand(1) && ShOp.getNode()) { in hoistLogicOpWithSameOpcodeHands()
4952 SDValue Logic = DAG.getNode(LogicOpcode, DL, VT, in hoistLogicOpWithSameOpcodeHands()
4964 if (N0.getOperand(0) == N1.getOperand(0) && ShOp.getNode()) { in hoistLogicOpWithSameOpcodeHands()
4965 SDValue Logic = DAG.getNode(LogicOpcode, DL, VT, N0.getOperand(1), in hoistLogicOpWithSameOpcodeHands()
5020 SDValue Or = DAG.getNode(ISD::OR, SDLoc(N0), OpVT, LL, RL); in foldLogicOfSetCCs()
5021 AddToWorklist(Or.getNode()); in foldLogicOfSetCCs()
5039 SDValue And = DAG.getNode(ISD::AND, SDLoc(N0), OpVT, LL, RL); in foldLogicOfSetCCs()
5040 AddToWorklist(And.getNode()); in foldLogicOfSetCCs()
5053 SDValue Add = DAG.getNode(ISD::ADD, SDLoc(N0), OpVT, LL, One); in foldLogicOfSetCCs()
5054 AddToWorklist(Add.getNode()); in foldLogicOfSetCCs()
5065 SDValue XorL = DAG.getNode(ISD::XOR, SDLoc(N0), OpVT, LL, LR); in foldLogicOfSetCCs()
5066 SDValue XorR = DAG.getNode(ISD::XOR, SDLoc(N1), OpVT, RL, RR); in foldLogicOfSetCCs()
5067 SDValue Or = DAG.getNode(ISD::OR, DL, OpVT, XorL, XorR); in foldLogicOfSetCCs()
5087 SDValue Max = DAG.getNode(ISD::UMAX, DL, OpVT, LR, RR); in foldLogicOfSetCCs()
5088 SDValue Min = DAG.getNode(ISD::UMIN, DL, OpVT, LR, RR); in foldLogicOfSetCCs()
5089 SDValue Offset = DAG.getNode(ISD::SUB, DL, OpVT, LL, Min); in foldLogicOfSetCCs()
5090 SDValue Diff = DAG.getNode(ISD::SUB, DL, OpVT, Max, Min); in foldLogicOfSetCCs()
5092 SDValue And = DAG.getNode(ISD::AND, DL, OpVT, Offset, Mask); in foldLogicOfSetCCs()
5157 DAG.getNode(ISD::ADD, DL0, VT, in visitANDLike()
5159 CombineTo(N0.getNode(), NewAdd); in visitANDLike()
5205 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SL, HalfVT, in visitANDLike()
5210 SDValue Shift = DAG.getNode(ISD::SRL, SL, HalfVT, Trunc, ShiftK); in visitANDLike()
5211 SDValue And = DAG.getNode(ISD::AND, SL, HalfVT, Shift, NewMask); in visitANDLike()
5212 return DAG.getNode(ISD::ZERO_EXTEND, SL, VT, And); in visitANDLike()
5405 if (!SearchForAndLoads(Op.getNode(), Loads, NodesWithConsts, Mask, in SearchForAndLoads()
5416 NodeToMask = Op.getNode(); in SearchForAndLoads()
5461 SDValue And = DAG.getNode(ISD::AND, SDLoc(FixupNode), in BackwardsPropagateMask()
5466 DAG.UpdateNodeOperands(And.getNode(), SDValue(FixupNode, 0), MaskOp); in BackwardsPropagateMask()
5477 SDValue And = DAG.getNode(ISD::AND, SDLoc(Op1), Op1.getValueType(), in BackwardsPropagateMask()
5486 SDValue And = DAG.getNode(ISD::AND, SDLoc(Load), Load->getValueType(0), in BackwardsPropagateMask()
5491 DAG.UpdateNodeOperands(And.getNode(), SDValue(Load, 0), MaskOp), 0); in BackwardsPropagateMask()
5492 SDValue NewLoad = ReduceLoadWidth(And.getNode()); in BackwardsPropagateMask()
5497 DAG.ReplaceAllUsesWith(N, N->getOperand(0).getNode()); in BackwardsPropagateMask()
5550 SDValue T0 = DAG.getNode(InnerShift, DL, VT, X, Y); in unfoldExtremeBitClearingToShifts()
5552 SDValue T1 = DAG.getNode(OuterShift, DL, VT, T0, Y); in unfoldExtremeBitClearingToShifts()
5604 SDValue NewAnd = DAG.getNode(ISD::AND, DL, VT, X, Mask); in combineShiftAnd1ToBitTest()
5625 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitAND()
5629 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitAND()
5635 if (ISD::isConstantSplatVectorAllOnes(N0.getNode())) in visitAND()
5637 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) in visitAND()
5674 return DAG.getNode(ISD::AND, SDLoc(N), VT, N1, N0); in visitAND()
5714 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), in visitAND()
5723 CombineTo(N0.getNode(), Zext); in visitAND()
5809 CombineTo(N, (N0.getNode() == Load) ? NewLoad : N0); in visitAND()
5838 isConstantSplatVectorMaskForType(N1.getNode(), ScalarVT) && in visitAND()
5848 AddToWorklist(ZExtLoad.getNode()); in visitAND()
5901 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, SubRHS.getOperand(0)); in visitAND()
5912 if (ISD::isUNINDEXEDLoad(N0.getNode()) && in visitAND()
5913 (ISD::isEXTLoad(N0.getNode()) || in visitAND()
5914 (ISD::isSEXTLoad(N0.getNode()) && N0.hasOneUse()))) { in visitAND()
5929 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitAND()
5936 if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitAND()
5971 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, N0.getOperand(0)); in visitAND()
5996 if (!N0.getNode()->hasOneUse()) in MatchBSwapHWordLow()
6009 if (!N1.getNode()->hasOneUse()) in MatchBSwapHWordLow()
6022 if (!N0.getNode()->hasOneUse() || !N1.getNode()->hasOneUse()) in MatchBSwapHWordLow()
6035 if (!N00.getNode()->hasOneUse()) in MatchBSwapHWordLow()
6046 if (!N10.getNode()->hasOneUse()) in MatchBSwapHWordLow()
6079 SDValue Res = DAG.getNode(ISD::BSWAP, SDLoc(N), VT, N00); in MatchBSwapHWordLow()
6082 Res = DAG.getNode(ISD::SRL, DL, VT, Res, in MatchBSwapHWordLow()
6096 if (!N.getNode()->hasOneUse()) in isBSwapHWordElement()
6175 Parts[MaskByteOffset] = N0.getOperand(0).getNode(); in isBSwapHWordElement()
6189 Parts[0] = Parts[1] = N.getOperand(0).getOperand(0).getNode(); in isBSwapHWordPair()
6233 SDValue BSwap = DAG.getNode(ISD::BSWAP, DL, VT, Shift0.getOperand(0)); in matchBSwapHWordOrAndAnd()
6235 return DAG.getNode(ISD::ROTR, DL, VT, BSwap, ShAmt); in matchBSwapHWordOrAndAnd()
6291 SDValue BSwap = DAG.getNode(ISD::BSWAP, DL, VT, in MatchBSwapHWord()
6298 return DAG.getNode(ISD::ROTL, DL, VT, BSwap, ShAmt); in MatchBSwapHWord()
6300 return DAG.getNode(ISD::ROTR, DL, VT, BSwap, ShAmt); in MatchBSwapHWord()
6301 return DAG.getNode(ISD::OR, DL, VT, in MatchBSwapHWord()
6302 DAG.getNode(ISD::SHL, DL, VT, BSwap, ShAmt), in MatchBSwapHWord()
6303 DAG.getNode(ISD::SRL, DL, VT, BSwap, ShAmt)); in MatchBSwapHWord()
6322 (N0.getNode()->hasOneUse() || N1.getNode()->hasOneUse())) { in visitORLike()
6336 SDValue X = DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitORLike()
6338 return DAG.getNode(ISD::AND, DL, VT, X, in visitORLike()
6350 (N0.getNode()->hasOneUse() || N1.getNode()->hasOneUse())) { in visitORLike()
6351 SDValue X = DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitORLike()
6353 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), X); in visitORLike()
6366 return DAG.getNode(ISD::OR, SDLoc(N), VT, N0.getOperand(0), N1); in visitORCommutative()
6370 return DAG.getNode(ISD::OR, SDLoc(N), VT, N0.getOperand(1), N1); in visitORCommutative()
6391 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitOR()
6393 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitOR()
6397 if (ISD::isConstantSplatVectorAllOnes(N0.getNode())) in visitOR()
6400 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) in visitOR()
6410 bool ZeroN00 = ISD::isBuildVectorAllZeros(N0.getOperand(0).getNode()); in visitOR()
6411 bool ZeroN01 = ISD::isBuildVectorAllZeros(N0.getOperand(1).getNode()); in visitOR()
6412 bool ZeroN10 = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitOR()
6413 bool ZeroN11 = ISD::isBuildVectorAllZeros(N1.getOperand(1).getNode()); in visitOR()
6476 return DAG.getNode(ISD::OR, SDLoc(N), VT, N1, N0); in visitOR()
6514 if (N0.getOpcode() == ISD::AND && N0.getNode()->hasOneUse() && in visitOR()
6518 SDValue IOR = DAG.getNode(ISD::OR, SDLoc(N0), VT, N0.getOperand(0), N1); in visitOR()
6519 AddToWorklist(IOR.getNode()); in visitOR()
6520 return DAG.getNode(ISD::AND, SDLoc(N), VT, COR, IOR); in visitOR()
6622 return DAG.getNode(ISD::SHL, DL, ShiftedVT, OppShiftLHS, in extractShiftForRotate()
6702 return DAG.getNode(Opcode, DL, ResVT, OppShiftLHS, NewShiftNode); in extractShiftForRotate()
6847 return DAG.getNode(HasPos ? PosOpcode : NegOpcode, DL, VT, Shifted, in MatchRotatePosNeg()
6876 return DAG.getNode(HasPos ? PosOpcode : NegOpcode, DL, VT, N0, N1, in MatchFunnelPosNeg()
6897 return DAG.getNode(ISD::FSHL, DL, VT, N0, N1.getOperand(0), Pos); in MatchFunnelPosNeg()
6906 return DAG.getNode(ISD::FSHR, DL, VT, N0.getOperand(0), N1, Neg); in MatchFunnelPosNeg()
6916 return DAG.getNode(ISD::FSHR, DL, VT, N0.getOperand(0), N1, Neg); in MatchFunnelPosNeg()
6946 return DAG.getNode(ISD::TRUNCATE, SDLoc(LHS), LHS.getValueType(), Rot); in MatchRotate()
7020 Res = DAG.getNode(HasROTL ? ISD::ROTL : ISD::ROTR, DL, VT, LHSShiftArg, in MatchRotate()
7023 Res = DAG.getNode(HasFSHL ? ISD::FSHL : ISD::FSHR, DL, VT, LHSShiftArg, in MatchRotate()
7027 if (LHSMask.getNode() || RHSMask.getNode()) { in MatchRotate()
7031 if (LHSMask.getNode()) { in MatchRotate()
7032 SDValue RHSBits = DAG.getNode(ISD::SRL, DL, VT, AllOnes, RHSShiftAmt); in MatchRotate()
7033 Mask = DAG.getNode(ISD::AND, DL, VT, Mask, in MatchRotate()
7034 DAG.getNode(ISD::OR, DL, VT, LHSMask, RHSBits)); in MatchRotate()
7036 if (RHSMask.getNode()) { in MatchRotate()
7037 SDValue LHSBits = DAG.getNode(ISD::SHL, DL, VT, AllOnes, LHSShiftAmt); in MatchRotate()
7038 Mask = DAG.getNode(ISD::AND, DL, VT, Mask, in MatchRotate()
7039 DAG.getNode(ISD::OR, DL, VT, RHSMask, LHSBits)); in MatchRotate()
7042 Res = DAG.getNode(ISD::AND, DL, VT, Res, Mask); in MatchRotate()
7050 if (LHSMask.getNode() || RHSMask.getNode()) in MatchRotate()
7208 auto L = cast<LoadSDNode>(Op.getNode()); in calculateByteProvider()
7447 SourceValue = DAG.getNode(ISD::TRUNCATE, DL, WideVT, SourceValue); in mergeTruncStores()
7454 SourceValue = DAG.getNode(ISD::BSWAP, DL, WideVT, SourceValue); in mergeTruncStores()
7458 SourceValue = DAG.getNode(ISD::ROTR, DL, WideVT, SourceValue, RotAmt); in mergeTruncStores()
7466 DAG.ReplaceAllUsesWith(N, NewStore.getNode()); in mergeTruncStores()
7653 DAG.ReplaceAllUsesOfValueWith(SDValue(L, 1), SDValue(NewLoad.getNode(), 1)); in MatchLoadCombine()
7660 ? DAG.getNode(ISD::SHL, SDLoc(N), VT, NewLoad, in MatchLoadCombine()
7664 return DAG.getNode(ISD::BSWAP, SDLoc(N), VT, ShiftedLoad); in MatchLoadCombine()
7722 if (isa<ConstantSDNode>(M.getNode())) in unfoldMaskedMerge()
7736 SDValue LHS = DAG.getNode(ISD::AND, DL, VT, NotX, M); in unfoldMaskedMerge()
7738 SDValue RHS = DAG.getNode(ISD::OR, DL, VT, M, Y); in unfoldMaskedMerge()
7739 return DAG.getNode(ISD::AND, DL, VT, NotLHS, RHS); in unfoldMaskedMerge()
7742 SDValue LHS = DAG.getNode(ISD::AND, DL, VT, X, M); in unfoldMaskedMerge()
7744 SDValue RHS = DAG.getNode(ISD::AND, DL, VT, Y, NotM); in unfoldMaskedMerge()
7746 return DAG.getNode(ISD::OR, DL, VT, LHS, RHS); in unfoldMaskedMerge()
7760 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitXOR()
7762 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitXOR()
7784 return DAG.getNode(ISD::XOR, DL, VT, N1, N0); in visitXOR()
7800 if (TLI.isConstTrueVal(N1.getNode()) && in visitXOR()
7824 recursivelyDeleteUnusedNodes(N0.getNode()); in visitXOR()
7838 V = DAG.getNode(ISD::XOR, DL0, V.getValueType(), V, in visitXOR()
7840 AddToWorklist(V.getNode()); in visitXOR()
7841 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, V); in visitXOR()
7850 N00 = DAG.getNode(ISD::XOR, SDLoc(N00), VT, N00, N1); // N00 = ~N00 in visitXOR()
7851 N01 = DAG.getNode(ISD::XOR, SDLoc(N01), VT, N01, N1); // N01 = ~N01 in visitXOR()
7852 AddToWorklist(N00.getNode()); AddToWorklist(N01.getNode()); in visitXOR()
7853 return DAG.getNode(NewOpcode, DL, VT, N00, N01); in visitXOR()
7862 N00 = DAG.getNode(ISD::XOR, SDLoc(N00), VT, N00, N1); // N00 = ~N00 in visitXOR()
7863 N01 = DAG.getNode(ISD::XOR, SDLoc(N01), VT, N01, N1); // N01 = ~N01 in visitXOR()
7864 AddToWorklist(N00.getNode()); AddToWorklist(N01.getNode()); in visitXOR()
7865 return DAG.getNode(NewOpcode, DL, VT, N00, N01); in visitXOR()
7874 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(1), in visitXOR()
7881 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), in visitXOR()
7889 AddToWorklist(NotX.getNode()); in visitXOR()
7890 return DAG.getNode(ISD::AND, DL, VT, NotX, N1); in visitXOR()
7909 return DAG.getNode(N0Opcode, DL, VT, Not, N0.getOperand(1)); in visitXOR()
7925 return DAG.getNode(ISD::ABS, DL, VT, S0); in visitXOR()
7953 return DAG.getNode(ISD::ROTL, DL, VT, DAG.getConstant(~1, DL, VT), in visitXOR()
8037 SDValue NewShift1 = DAG.getNode(ShiftOpcode, DL, VT, X, ShiftSumC); in combineShiftOfShiftedLogic()
8038 SDValue NewShift2 = DAG.getNode(ShiftOpcode, DL, VT, Y, C1); in combineShiftOfShiftedLogic()
8039 return DAG.getNode(LogicOpcode, DL, VT, NewShift1, NewShift2); in combineShiftOfShiftedLogic()
8110 SDValue NewRHS = DAG.getNode(N->getOpcode(), DL, VT, LHS.getOperand(1), in visitShiftByConstant()
8114 SDValue NewShift = DAG.getNode(N->getOpcode(), DL, VT, LHS.getOperand(0), in visitShiftByConstant()
8116 return DAG.getNode(LHS.getOpcode(), DL, VT, NewShift, NewRHS); in visitShiftByConstant()
8131 SDValue Trunc00 = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, N00); in distributeTruncateThroughAnd()
8132 SDValue Trunc01 = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, N01); in distributeTruncateThroughAnd()
8133 AddToWorklist(Trunc00.getNode()); in distributeTruncateThroughAnd()
8134 AddToWorklist(Trunc01.getNode()); in distributeTruncateThroughAnd()
8135 return DAG.getNode(ISD::AND, DL, TruncVT, Trunc00, Trunc01); in distributeTruncateThroughAnd()
8171 return DAG.getNode(N->getOpcode(), dl, VT, N0, Amt); in visitRotate()
8178 return DAG.getNode(ISD::BSWAP, dl, VT, N0); in visitRotate()
8187 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitRotate()
8188 return DAG.getNode(N->getOpcode(), dl, VT, N0, NewOp1); in visitRotate()
8205 return DAG.getNode(N->getOpcode(), dl, VT, N0->getOperand(0), in visitRotate()
8242 return DAG.getNode(ISD::AND, SDLoc(N), VT, N00, C); in visitSHL()
8265 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSHL()
8266 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, NewOp1); in visitSHL()
8293 SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1)); in visitSHL()
8294 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Sum); in visitSHL()
8337 SDValue Ext = DAG.getNode(N0.getOpcode(), DL, VT, N0Op0.getOperand(0)); in visitSHL()
8339 Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, Sum, N1); in visitSHL()
8340 return DAG.getNode(ISD::SHL, DL, VT, Ext, Sum); in visitSHL()
8364 NewSHL = DAG.getNode(ISD::SHL, DL, N0Op0.getValueType(), N0Op0, NewSHL); in visitSHL()
8365 AddToWorklist(NewSHL.getNode()); in visitSHL()
8366 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N0), VT, NewSHL); in visitSHL()
8380 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), in visitSHL()
8382 return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0), in visitSHL()
8404 Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), in visitSHL()
8409 Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), in visitSHL()
8413 return DAG.getNode(ISD::AND, DL, VT, Shift, in visitSHL()
8424 SDValue HiBitsMask = DAG.getNode(ISD::SHL, DL, VT, AllBits, N1); in visitSHL()
8425 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), HiBitsMask); in visitSHL()
8433 N0.getNode()->hasOneUse() && in visitSHL()
8437 SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1); in visitSHL()
8438 SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); in visitSHL()
8439 AddToWorklist(Shl0.getNode()); in visitSHL()
8440 AddToWorklist(Shl1.getNode()); in visitSHL()
8441 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, Shl0, Shl1); in visitSHL()
8445 if (N0.getOpcode() == ISD::MUL && N0.getNode()->hasOneUse() && in visitSHL()
8448 SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); in visitSHL()
8450 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N0.getOperand(0), Shl); in visitSHL()
8468 if (ISD::isConstantSplatVector(N1.getNode(), ShlVal)) { in visitSHL()
8543 SDValue Result = DAG.getNode(MulhOpcode, DL, NarrowVT, LeftOp.getOperand(0), in combineShiftToMULH()
8589 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, in visitSRA()
8626 return DAG.getNode(ISD::SRA, DL, VT, N0.getOperand(0), ShiftValue); in visitSRA()
8660 SDValue Shift = DAG.getNode(ISD::SRL, DL, VT, in visitSRA()
8662 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, in visitSRA()
8664 return DAG.getNode(ISD::SIGN_EXTEND, DL, in visitSRA()
8696 SDValue Add = DAG.getNode(ISD::ADD, DL, TruncVT, Trunc, ShiftC); in visitSRA()
8705 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSRA()
8706 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0, NewOp1); in visitSRA()
8727 DAG.getNode(ISD::SRA, DL, LargeVT, N0Op0.getOperand(0), Amt); in visitSRA()
8728 return DAG.getNode(ISD::TRUNCATE, DL, VT, SRA); in visitSRA()
8739 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, N1); in visitSRA()
8803 SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1)); in visitSRL()
8804 return DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), Sum); in visitSRL()
8825 SDValue NewShift = DAG.getNode(ISD::SRL, DL, InnerShiftVT, in visitSRL()
8827 return DAG.getNode(ISD::TRUNCATE, DL, VT, NewShift); in visitSRL()
8835 SDValue NewShift = DAG.getNode(ISD::SRL, DL, InnerShiftVT, in visitSRL()
8840 SDValue And = DAG.getNode(ISD::AND, DL, InnerShiftVT, NewShift, Mask); in visitSRL()
8841 return DAG.getNode(ISD::TRUNCATE, DL, VT, And); in visitSRL()
8852 DAG.getNode(ISD::SRL, DL, VT, DAG.getAllOnesConstant(DL, VT), N1); in visitSRL()
8853 AddToWorklist(Mask.getNode()); in visitSRL()
8854 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), Mask); in visitSRL()
8869 SDValue SmallShift = DAG.getNode(ISD::SRL, DL0, SmallVT, in visitSRL()
8873 AddToWorklist(SmallShift.getNode()); in visitSRL()
8876 return DAG.getNode(ISD::AND, DL, VT, in visitSRL()
8877 DAG.getNode(ISD::ANY_EXTEND, DL, VT, SmallShift), in visitSRL()
8886 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), N1); in visitSRL()
8914 Op = DAG.getNode(ISD::SRL, DL, VT, Op, in visitSRL()
8917 AddToWorklist(Op.getNode()); in visitSRL()
8921 return DAG.getNode(ISD::XOR, DL, VT, in visitSRL()
8929 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSRL()
8930 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, NewOp1); in visitSRL()
9009 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N0, N1, in visitFunnelShift()
9022 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N1, in visitFunnelShift()
9026 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, in visitFunnelShift()
9055 AddToWorklist(NewPtr.getNode()); in visitFunnelShift()
9077 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N1, N2); in visitFunnelShift()
9079 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, N2); in visitFunnelShift()
9088 return DAG.getNode(RotOpc, SDLoc(N), VT, N0, N2); in visitFunnelShift()
9127 DAG.getNode(ABDOpcode, SDLoc(N), Op0->getValueType(0), Op0, Op1); in combineABSToABD()
9128 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), N->getValueType(0), ABD); in combineABSToABD()
9137 return DAG.getNode(ISD::ABS, SDLoc(N), VT, N0); in visitABS()
9157 return DAG.getNode(ISD::BSWAP, SDLoc(N), VT, N0); in visitBSWAP()
9170 return DAG.getNode(ISD::BITREVERSE, SDLoc(N), VT, N0); in visitBITREVERSE()
9183 return DAG.getNode(ISD::CTLZ, SDLoc(N), VT, N0); in visitCTLZ()
9188 return DAG.getNode(ISD::CTLZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTLZ()
9200 return DAG.getNode(ISD::CTLZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTLZ_ZERO_UNDEF()
9210 return DAG.getNode(ISD::CTTZ, SDLoc(N), VT, N0); in visitCTTZ()
9215 return DAG.getNode(ISD::CTTZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTTZ()
9227 return DAG.getNode(ISD::CTTZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTTZ_ZERO_UNDEF()
9237 return DAG.getNode(ISD::CTPOP, SDLoc(N), VT, N0); in visitCTPOP()
9275 return DAG.getNode(IEEEOpcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
9279 return DAG.getNode(Opcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
9290 return DAG.getNode(IEEEOpcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
9294 return DAG.getNode(Opcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
9326 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, X, ShAmtC); in foldSelectOfConstantsUsingSra()
9327 return DAG.getNode(ISD::OR, DL, VT, Sra, C1); in foldSelectOfConstantsUsingSra()
9333 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, X, ShAmtC); in foldSelectOfConstantsUsingSra()
9334 return DAG.getNode(ISD::AND, DL, VT, Sra, C1); in foldSelectOfConstantsUsingSra()
9364 NotCond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, NotCond); in foldSelectOfConstants()
9371 NotCond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, NotCond); in foldSelectOfConstants()
9377 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
9383 Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
9397 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
9398 return DAG.getNode(ISD::ADD, DL, VT, Cond, N2); in foldSelectOfConstants()
9403 Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
9404 return DAG.getNode(ISD::ADD, DL, VT, Cond, N2); in foldSelectOfConstants()
9410 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
9412 return DAG.getNode(ISD::SHL, DL, VT, Cond, ShAmtC); in foldSelectOfConstants()
9438 DAG.getNode(ISD::XOR, DL, CondVT, Cond, DAG.getConstant(1, DL, CondVT)); in foldSelectOfConstants()
9459 return DAG.getNode(ISD::OR, SDLoc(N), VT, Cond, F); in foldBoolSelectToLogic()
9464 return DAG.getNode(ISD::AND, SDLoc(N), VT, Cond, T); in foldBoolSelectToLogic()
9469 return DAG.getNode(ISD::OR, SDLoc(N), VT, NotCond, T); in foldBoolSelectToLogic()
9475 return DAG.getNode(ISD::AND, SDLoc(N), VT, NotCond, F); in foldBoolSelectToLogic()
9520 DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond1, N1, N2, Flags); in visitSELECT()
9522 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond0, in visitSELECT()
9526 recursivelyDeleteUnusedNodes(InnerSelect.getNode()); in visitSELECT()
9532 SDValue InnerSelect = DAG.getNode(ISD::SELECT, DL, N1.getValueType(), in visitSELECT()
9535 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond0, N1, in visitSELECT()
9539 recursivelyDeleteUnusedNodes(InnerSelect.getNode()); in visitSELECT()
9550 SDValue And = DAG.getNode(ISD::AND, DL, N0.getValueType(), N0, N1_0); in visitSELECT()
9551 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), And, N1_1, in visitSELECT()
9556 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Combined, N1_1, in visitSELECT()
9569 SDValue Or = DAG.getNode(ISD::OR, DL, N0.getValueType(), N0, N2_0); in visitSELECT()
9570 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Or, N1, in visitSELECT()
9575 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Combined, N1, in visitSELECT()
9626 SDValue UAO = DAG.getNode(ISD::UADDO, DL, VTs, Cond0, N2.getOperand(1)); in visitSELECT()
9636 Flags = N0.getNode()->getFlags(); in visitSELECT()
9637 SDValue SelectNode = DAG.getNode(ISD::SELECT_CC, DL, VT, Cond0, Cond1, N1, in visitSELECT()
9684 else if (Cond->getOperand(i).getNode() != BottomHalf) in ConvertSelectToConcatVector()
9696 else if (Cond->getOperand(i).getNode() != TopHalf) in ConvertSelectToConcatVector()
9703 return DAG.getNode( in ConvertSelectToConcatVector()
9761 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMSCATTER()
9788 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMSTORE()
9793 if (ISD::isConstantSplatVectorAllOnes(Mask.getNode()) && in visitMSTORE()
9817 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMGATHER()
9845 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMLOAD()
9850 if (ISD::isConstantSplatVectorAllOnes(Mask.getNode()) && in visitMLOAD()
9874 !ISD::isBuildVectorOfConstantSDNodes(N1.getNode()) || in foldVSelectOfConstants()
9875 !ISD::isBuildVectorOfConstantSDNodes(N2.getNode())) in foldVSelectOfConstants()
9907 SDValue ExtendedCond = DAG.getNode(ExtendOpcode, DL, VT, Cond); in foldVSelectOfConstants()
9908 return DAG.getNode(ISD::ADD, DL, VT, ExtendedCond, N2); in foldVSelectOfConstants()
9913 if (ISD::isConstantSplatVector(N1.getNode(), Pow2C) && Pow2C.isPowerOf2() && in foldVSelectOfConstants()
9917 return DAG.getNode(ISD::SHL, DL, VT, ZextCond, ShAmtC); in foldVSelectOfConstants()
9956 bool RHSIsAllZeros = ISD::isBuildVectorAllZeros(RHS.getNode()); in visitVSELECT()
9959 (ISD::isBuildVectorAllOnes(RHS.getNode()) && CC == ISD::SETGT)) && in visitVSELECT()
9961 isAbs = ISD::isBuildVectorAllZeros(N2.getOperand(0).getNode()); in visitVSELECT()
9964 isAbs = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitVSELECT()
9968 return DAG.getNode(ISD::ABS, DL, VT, LHS); in visitVSELECT()
9970 SDValue Shift = DAG.getNode(ISD::SRA, DL, VT, LHS, in visitVSELECT()
9973 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, LHS, Shift); in visitVSELECT()
9974 AddToWorklist(Shift.getNode()); in visitVSELECT()
9975 AddToWorklist(Add.getNode()); in visitVSELECT()
9976 return DAG.getNode(ISD::XOR, DL, VT, Add, Shift); in visitVSELECT()
10013 SDValue WideLHS = DAG.getNode(ExtOpcode, DL, WideVT, LHS); in visitVSELECT()
10014 SDValue WideRHS = DAG.getNode(ExtOpcode, DL, WideVT, RHS); in visitVSELECT()
10027 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) { in visitVSELECT()
10030 } else if (ISD::isConstantSplatVectorAllOnes(N2.getNode())) { in visitVSELECT()
10049 return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10063 return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10074 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) { in visitVSELECT()
10077 } else if (ISD::isConstantSplatVectorAllZeros(N2.getNode())) { in visitVSELECT()
10104 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10121 OpRHS = DAG.getNode(ISD::SUB, DL, VT, in visitVSELECT()
10123 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10133 ISD::isConstantSplatVector(OpRHS.getNode(), SplatValue) && in visitVSELECT()
10134 ISD::isConstantSplatVectorAllZeros(CondRHS.getNode()) && in visitVSELECT()
10139 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10152 if (ISD::isConstantSplatVectorAllOnes(N0.getNode())) in visitVSELECT()
10155 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitVSELECT()
10163 ISD::isBuildVectorOfConstantSDNodes(N0.getNode())) { in visitVSELECT()
10189 AddToWorklist(SCC.getNode()); in visitSELECT_CC()
10191 if (ConstantSDNode *SCCC = dyn_cast<ConstantSDNode>(SCC.getNode())) { in visitSELECT_CC()
10202 SDValue SelectOp = DAG.getNode( in visitSELECT_CC()
10291 if (NewSetCC.getNode() == N) in visitSETCC()
10309 return DAG.getNode(ISD::SETCC, SDLoc(N), N->getVTList(), LHS, RHS, Cond); in visitSETCCCARRY()
10380 SDValue Ext1 = DAG.getNode(Opcode, DL, VT, Op1); in tryToFoldExtendSelectLoad()
10381 SDValue Ext2 = DAG.getNode(Opcode, DL, VT, Op2); in tryToFoldExtendSelectLoad()
10407 return DAG.getNode(Opcode, DL, VT, N0); in tryToFoldExtendOfConstant()
10430 DAG.getNode(FoldOpc, DL, VT, Op1), in tryToFoldExtendOfConstant()
10431 DAG.getNode(FoldOpc, DL, VT, Op2)); in tryToFoldExtendOfConstant()
10440 ISD::isBuildVectorOfConstantSDNodes(N0.getNode()))) in tryToFoldExtendOfConstant()
10484 for (SDNode::use_iterator UI = N0.getNode()->use_begin(), in ExtendUsesToFormExtLoad()
10485 UE = N0.getNode()->use_end(); in ExtendUsesToFormExtLoad()
10551 Ops.push_back(DAG.getNode(ExtType, DL, ExtLoad->getValueType(0), SOp)); in ExtendSetCCUses()
10555 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0), Ops)); in ExtendSetCCUses()
10641 SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chains); in CombineExtLoad()
10642 SDValue NewValue = DAG.getNode(ISD::CONCAT_VECTORS, DL, DstVT, Loads); in CombineExtLoad()
10645 AddToWorklist(NewChain.getNode()); in CombineExtLoad()
10652 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), NewValue); in CombineExtLoad()
10654 CombineTo(N0.getNode(), Trunc, NewChain); in CombineExtLoad()
10701 if (!ExtendUsesToFormExtLoad(VT, N1.getNode(), N1.getOperand(0), in CombineZExtLogicopShiftLoad()
10711 SDValue Shift = DAG.getNode(N1.getOpcode(), DL1, VT, ExtLoad, in CombineZExtLogicopShiftLoad()
10716 SDValue And = DAG.getNode(N0.getOpcode(), DL0, VT, Shift, in CombineZExtLogicopShiftLoad()
10724 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(Load), in CombineZExtLogicopShiftLoad()
10730 recursivelyDeleteUnusedNodes(N0.getNode()); in CombineZExtLogicopShiftLoad()
10771 CastA = DAG.getNode(CastOpcode, DL, VT, A, Cast->getOperand(1)); in matchVSelectOpSizesWithSetCC()
10772 CastB = DAG.getNode(CastOpcode, DL, VT, B, Cast->getOperand(1)); in matchVSelectOpSizesWithSetCC()
10774 CastA = DAG.getNode(CastOpcode, DL, VT, A); in matchVSelectOpSizesWithSetCC()
10775 CastB = DAG.getNode(CastOpcode, DL, VT, B); in matchVSelectOpSizesWithSetCC()
10777 return DAG.getNode(ISD::VSELECT, DL, VT, SetCC, CastA, CastB); in matchVSelectOpSizesWithSetCC()
10786 SDNode *N0Node = N0.getNode(); in tryToFoldExtOfExtload()
10818 if (!ISD::isNON_EXTLoad(N0.getNode()) || in tryToFoldExtOfLoad()
10819 !ISD::isUNINDEXEDLoad(N0.getNode()) || in tryToFoldExtOfLoad()
10847 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), ExtLoad); in tryToFoldExtOfLoad()
10872 SDValue PassThru = DAG.getNode(ExtOpc, dl, VT, Ld->getPassThru()); in tryToFoldExtOfMaskedLoad()
10877 DAG.ReplaceAllUsesOfValueWith(SDValue(Ld, 1), SDValue(NewLoad.getNode(), 1)); in tryToFoldExtOfMaskedLoad()
10911 return DAG.getNode(ShiftOpcode, DL, VT, NotX, ShiftAmount); in foldExtendedSignBitTest()
10973 if (!(ISD::isNON_EXTLoad(V.getNode()) && in foldSextSetcc()
10974 ISD::isUNINDEXEDLoad(V.getNode()) && in foldSextSetcc()
10985 if (UI.getUse().getResNo() != 0 || User == N0.getNode()) in foldSextSetcc()
10997 SDValue Ext0 = DAG.getNode(ExtOpcode, DL, VT, N00); in foldSextSetcc()
10998 SDValue Ext1 = DAG.getNode(ExtOpcode, DL, VT, N01); in foldSextSetcc()
11050 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, N0.getOperand(0)); in visitSIGN_EXTEND()
11055 if (SDValue NarrowLoad = ReduceLoadWidth(N0.getNode())) { in visitSIGN_EXTEND()
11056 SDNode *oye = N0.getOperand(0).getNode(); in visitSIGN_EXTEND()
11057 if (NarrowLoad.getNode() != N0.getNode()) { in visitSIGN_EXTEND()
11058 CombineTo(N0.getNode(), NarrowLoad); in visitSIGN_EXTEND()
11082 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Op); in visitSIGN_EXTEND()
11087 return DAG.getNode(ISD::TRUNCATE, DL, VT, Op); in visitSIGN_EXTEND()
11094 Op = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
11096 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
11097 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, VT, Op, in visitSIGN_EXTEND()
11135 bool DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND()
11143 SDValue And = DAG.getNode(N0.getOpcode(), DL, VT, in visitSIGN_EXTEND()
11152 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), And); in visitSIGN_EXTEND()
11153 CombineTo(N0.getNode(), TruncAnd); in visitSIGN_EXTEND()
11158 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(LN00), in visitSIGN_EXTEND()
11176 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0); in visitSIGN_EXTEND()
11188 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), Zext); in visitSIGN_EXTEND()
11197 return DAG.getNode(ISD::ADD, DL, VT, Zext, DAG.getAllOnesConstant(DL, VT)); in visitSIGN_EXTEND()
11206 if (SDValue NewXor = visitXOR(N0.getNode())) { in visitSIGN_EXTEND()
11209 if (NewXor.getNode() == N0.getNode()) { in visitSIGN_EXTEND()
11215 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, NewXor); in visitSIGN_EXTEND()
11219 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitSIGN_EXTEND()
11220 return DAG.getNode(ISD::ADD, DL, VT, Zext, DAG.getAllOnesConstant(DL, VT)); in visitSIGN_EXTEND()
11282 return DAG.getNode(ISD::CTPOP, DL, VT, NewZext); in widenCtPop()
11295 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, in visitZERO_EXTEND()
11319 if (SDValue NarrowLoad = ReduceLoadWidth(N0.getNode())) { in visitZERO_EXTEND()
11320 SDNode *oye = N0.getOperand(0).getNode(); in visitZERO_EXTEND()
11321 if (NarrowLoad.getNode() != N0.getNode()) { in visitZERO_EXTEND()
11322 CombineTo(N0.getNode(), NarrowLoad); in visitZERO_EXTEND()
11339 AddToWorklist(Op.getNode()); in visitZERO_EXTEND()
11349 AddToWorklist(Op.getNode()); in visitZERO_EXTEND()
11370 return DAG.getNode(ISD::AND, DL, VT, in visitZERO_EXTEND()
11415 DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), in visitZERO_EXTEND()
11424 SDValue And = DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
11433 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), And); in visitZERO_EXTEND()
11434 CombineTo(N0.getNode(), TruncAnd); in visitZERO_EXTEND()
11439 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(LN00), in visitZERO_EXTEND()
11477 SDValue VSetCC = DAG.getNode(ISD::SETCC, DL, VT, N0.getOperand(0), in visitZERO_EXTEND()
11487 DAG.getNode(ISD::SETCC, DL, MatchingVectorType, N0.getOperand(0), in visitZERO_EXTEND()
11502 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, SCC); in visitZERO_EXTEND()
11525 ShAmt = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, ShAmt); in visitZERO_EXTEND()
11527 return DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
11528 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)), in visitZERO_EXTEND()
11557 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitANY_EXTEND()
11562 if (SDValue NarrowLoad = ReduceLoadWidth(N0.getNode())) { in visitANY_EXTEND()
11563 SDNode *oye = N0.getOperand(0).getNode(); in visitANY_EXTEND()
11564 if (NarrowLoad.getNode() != N0.getNode()) { in visitANY_EXTEND()
11565 CombineTo(N0.getNode(), NarrowLoad); in visitANY_EXTEND()
11588 return DAG.getNode(ISD::AND, DL, VT, in visitANY_EXTEND()
11601 } else if (ISD::isNON_EXTLoad(N0.getNode()) && in visitANY_EXTEND()
11602 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitANY_EXTEND()
11623 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), ExtLoad); in visitANY_EXTEND()
11633 if (N0.getOpcode() == ISD::LOAD && !ISD::isNON_EXTLoad(N0.getNode()) && in visitANY_EXTEND()
11634 ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) { in visitANY_EXTEND()
11726 SDValue NewAssert = DAG.getNode(Opcode, DL, BigA.getValueType(), in visitAssertExt()
11728 return DAG.getNode(ISD::TRUNCATE, DL, N->getValueType(0), NewAssert); in visitAssertExt()
11745 SDValue NewAssert = DAG.getNode(Opcode, DL, BigA.getValueType(), in visitAssertExt()
11747 return DAG.getNode(ISD::TRUNCATE, DL, N->getValueType(0), NewAssert); in visitAssertExt()
11784 return DAG.getNode(N0.getOpcode(), DL, N0.getValueType(), LHS, RHS); in visitAssertAlign()
11948 AddToWorklist(NewPtr.getNode()); in ReduceLoadWidth()
11978 Result = DAG.getNode(ISD::SHL, DL, VT, in ReduceLoadWidth()
11993 Result = DAG.getNode(ISD::SHL, DL, VT, Result, ShiftC); in ReduceLoadWidth()
12015 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, N0, N1); in visitSIGN_EXTEND_INREG()
12024 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, N0.getOperand(0), in visitSIGN_EXTEND_INREG()
12037 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00); in visitSIGN_EXTEND_INREG()
12058 return DAG.getNode(ISD::SIGN_EXTEND_VECTOR_INREG, SDLoc(N), VT, N00); in visitSIGN_EXTEND_INREG()
12067 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00, N1); in visitSIGN_EXTEND_INREG()
12094 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0.getOperand(0), in visitSIGN_EXTEND_INREG()
12103 if (ISD::isEXTLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
12104 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
12115 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
12116 AddToWorklist(ExtLoad.getNode()); in visitSIGN_EXTEND_INREG()
12121 if (ISD::isZEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
12132 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
12147 CombineTo(N0.getNode(), ExtMaskedLoad, ExtMaskedLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
12165 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
12166 AddToWorklist(ExtLoad.getNode()); in visitSIGN_EXTEND_INREG()
12173 if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND_INREG()
12175 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, BSwap, N1); in visitSIGN_EXTEND_INREG()
12210 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
12214 SDValue C = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0); in visitTRUNCATE()
12215 if (C.getNode() != N) in visitTRUNCATE()
12225 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
12228 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
12267 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, TrTy, in visitTRUNCATE()
12279 SDValue TruncOp0 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(1)); in visitTRUNCATE()
12280 SDValue TruncOp1 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(2)); in visitTRUNCATE()
12281 return DAG.getNode(ISD::SELECT, SDLoc(N), VT, Cond, TruncOp0, TruncOp1); in visitTRUNCATE()
12296 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(0)); in visitTRUNCATE()
12299 AddToWorklist(Amt.getNode()); in visitTRUNCATE()
12301 return DAG.getNode(ISD::SHL, SL, VT, Trunc, Amt); in visitTRUNCATE()
12305 if (SDValue V = foldSubToUSubSat(VT, N0.getNode())) in visitTRUNCATE()
12317 SDValue TruncOp = DAG.getNode(ISD::TRUNCATE, DL, SVT, Op); in visitTRUNCATE()
12362 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Shorter); in visitTRUNCATE()
12373 if (N0.hasOneUse() && ISD::isUNINDEXEDLoad(N0.getNode())) { in visitTRUNCATE()
12414 assert(V.getNode() && "The single defined operand is empty!"); in visitTRUNCATE()
12421 SDValue NV = DAG.getNode(ISD::TRUNCATE, SDLoc(V), VTs[i], V); in visitTRUNCATE()
12422 AddToWorklist(NV.getNode()); in visitTRUNCATE()
12425 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Opnds); in visitTRUNCATE()
12442 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, VT, VecSrc, in visitTRUNCATE()
12455 N0.hasOneUse() && !N0.getNode()->hasAnyUseOfValue(1) && in visitTRUNCATE()
12460 auto X = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(0)); in visitTRUNCATE()
12461 auto Y = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(1)); in visitTRUNCATE()
12463 return DAG.getNode(N0.getOpcode(), SL, VTs, X, Y, N0.getOperand(2)); in visitTRUNCATE()
12477 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N0->getOperand(0)), VT, in visitTRUNCATE()
12504 SDValue NarrowL = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(0)); in visitTRUNCATE()
12505 SDValue NarrowR = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(1)); in visitTRUNCATE()
12506 return DAG.getNode(N0.getOpcode(), DL, VT, NarrowL, NarrowR); in visitTRUNCATE()
12531 return Elt.getNode(); in getBuildPairElt()
12532 return Elt.getOperand(Elt.getResNo()).getNode(); in getBuildPairElt()
12618 SDValue FPOp = DAG.getNode(FPOpcode, SDLoc(N), VT, LogicOp0.getOperand(0)); in foldBitcastedFPLogic()
12621 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, FPOp); in foldBitcastedFPLogic()
12645 N0.getOpcode() == ISD::BUILD_VECTOR && N0.getNode()->hasOneUse() && in visitBITCAST()
12647 return ConstantFoldBITCASTofBUILD_VECTOR(N0.getNode(), in visitBITCAST()
12661 if (C.getNode() != N) in visitBITCAST()
12672 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitBITCAST()
12713 N0.getNode()->hasOneUse() && VT.isInteger() && in visitBITCAST()
12716 AddToWorklist(NewConv.getNode()); in visitBITCAST()
12726 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
12730 DAG.getNode(ISD::EXTRACT_ELEMENT, SDLoc(NewConv), MVT::i64, NewConv, in visitBITCAST()
12733 AddToWorklist(Hi.getNode()); in visitBITCAST()
12734 FlipBit = DAG.getNode(ISD::AND, SDLoc(N0), MVT::i64, Hi, SignBit); in visitBITCAST()
12735 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
12738 DAG.getNode(ISD::BUILD_PAIR, SDLoc(N0), VT, FlipBit, FlipBit); in visitBITCAST()
12739 AddToWorklist(FlipBits.getNode()); in visitBITCAST()
12740 return DAG.getNode(ISD::XOR, DL, VT, NewConv, FlipBits); in visitBITCAST()
12744 return DAG.getNode(ISD::XOR, DL, VT, in visitBITCAST()
12747 return DAG.getNode(ISD::AND, DL, VT, in visitBITCAST()
12762 if (N0.getOpcode() == ISD::FCOPYSIGN && N0.getNode()->hasOneUse() && in visitBITCAST()
12769 AddToWorklist(X.getNode()); in visitBITCAST()
12774 X = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, X); in visitBITCAST()
12775 AddToWorklist(X.getNode()); in visitBITCAST()
12780 X = DAG.getNode(ISD::SRL, DL, in visitBITCAST()
12784 AddToWorklist(X.getNode()); in visitBITCAST()
12785 X = DAG.getNode(ISD::TRUNCATE, SDLoc(X), VT, X); in visitBITCAST()
12786 AddToWorklist(X.getNode()); in visitBITCAST()
12792 AddToWorklist(Cst.getNode()); in visitBITCAST()
12794 AddToWorklist(X.getNode()); in visitBITCAST()
12795 SDValue XorResult = DAG.getNode(ISD::XOR, SDLoc(N0), VT, Cst, X); in visitBITCAST()
12796 AddToWorklist(XorResult.getNode()); in visitBITCAST()
12797 SDValue XorResult64 = DAG.getNode( in visitBITCAST()
12801 AddToWorklist(XorResult64.getNode()); in visitBITCAST()
12803 DAG.getNode(ISD::AND, SDLoc(XorResult64), MVT::i64, XorResult64, in visitBITCAST()
12805 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
12807 DAG.getNode(ISD::BUILD_PAIR, SDLoc(N0), VT, FlipBit, FlipBit); in visitBITCAST()
12808 AddToWorklist(FlipBits.getNode()); in visitBITCAST()
12809 return DAG.getNode(ISD::XOR, SDLoc(N), VT, Cst, FlipBits); in visitBITCAST()
12812 X = DAG.getNode(ISD::AND, SDLoc(X), VT, in visitBITCAST()
12814 AddToWorklist(X.getNode()); in visitBITCAST()
12817 Cst = DAG.getNode(ISD::AND, SDLoc(Cst), VT, in visitBITCAST()
12819 AddToWorklist(Cst.getNode()); in visitBITCAST()
12821 return DAG.getNode(ISD::OR, SDLoc(N), VT, X, Cst); in visitBITCAST()
12827 if (SDValue CombineLD = CombineConsecutiveLoads(N0.getNode(), VT)) in visitBITCAST()
12846 if (Op.isUndef() || ISD::isBuildVectorOfConstantSDNodes(Op.getNode()) || in visitBITCAST()
12847 ISD::isBuildVectorOfConstantFPSDNodes(Op.getNode())) in visitBITCAST()
12910 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(BV), SrcEltVT, Op); in ConstantFoldBITCASTofBUILD_VECTOR()
12912 AddToWorklist(Ops.back().getNode()); in ConstantFoldBITCASTofBUILD_VECTOR()
12926 BV = ConstantFoldBITCASTofBUILD_VECTOR(BV, IntVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
12934 SDNode *Tmp = ConstantFoldBITCASTofBUILD_VECTOR(BV, TmpVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
13051 if (N0.getNode()->use_size() > N1.getNode()->use_size()) in visitFADDForFMACombine()
13057 return DAG.getNode(PreferredFusedOpcode, SL, VT, N0.getOperand(0), in visitFADDForFMACombine()
13064 return DAG.getNode(PreferredFusedOpcode, SL, VT, N1.getOperand(0), in visitFADDForFMACombine()
13088 SDValue CDE = DAG.getNode(PreferredFusedOpcode, SL, VT, C, D, E); in visitFADDForFMACombine()
13089 return DAG.getNode(PreferredFusedOpcode, SL, VT, A, B, CDE); in visitFADDForFMACombine()
13100 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
13101 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFADDForFMACombine()
13102 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFADDForFMACombine()
13114 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
13115 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0)), in visitFADDForFMACombine()
13116 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), in visitFADDForFMACombine()
13127 return DAG.getNode(PreferredFusedOpcode, SL, VT, X, Y, in visitFADDForFMACombine()
13128 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
13129 DAG.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
13130 DAG.getNode(ISD::FP_EXTEND, SL, VT, V), in visitFADDForFMACombine()
13154 return DAG.getNode( in visitFADDForFMACombine()
13155 PreferredFusedOpcode, SL, VT, DAG.getNode(ISD::FP_EXTEND, SL, VT, X), in visitFADDForFMACombine()
13156 DAG.getNode(ISD::FP_EXTEND, SL, VT, Y), in visitFADDForFMACombine()
13157 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
13158 DAG.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
13159 DAG.getNode(ISD::FP_EXTEND, SL, VT, V), Z)); in visitFADDForFMACombine()
13261 return DAG.getNode(PreferredFusedOpcode, SL, VT, XY.getOperand(0), in visitFSUBForFMACombine()
13262 XY.getOperand(1), DAG.getNode(ISD::FNEG, SL, VT, Z)); in visitFSUBForFMACombine()
13271 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13272 DAG.getNode(ISD::FNEG, SL, VT, YZ.getOperand(0)), in visitFSUBForFMACombine()
13281 (N0.getNode()->use_size() > N1.getNode()->use_size())) { in visitFSUBForFMACombine()
13302 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13303 DAG.getNode(ISD::FNEG, SL, VT, N00), N01, in visitFSUBForFMACombine()
13304 DAG.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
13316 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13317 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
13318 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
13319 DAG.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
13331 return DAG.getNode( in visitFSUBForFMACombine()
13333 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
13334 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0))), in visitFSUBForFMACombine()
13335 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), N0); in visitFSUBForFMACombine()
13352 return DAG.getNode( in visitFSUBForFMACombine()
13354 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13355 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
13356 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
13375 return DAG.getNode( in visitFSUBForFMACombine()
13377 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13378 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
13379 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
13391 return isContractableFMUL(N) && isReassociable(N.getNode()); in visitFSUBForFMACombine()
13402 return DAG.getNode(PreferredFusedOpcode, SL, VT, N0.getOperand(0), in visitFSUBForFMACombine()
13404 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13407 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
13417 return DAG.getNode( in visitFSUBForFMACombine()
13419 DAG.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), N1.getOperand(1), in visitFSUBForFMACombine()
13420 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13421 DAG.getNode(ISD::FNEG, SL, VT, N20), N21, N0)); in visitFSUBForFMACombine()
13434 return DAG.getNode( in visitFSUBForFMACombine()
13436 DAG.getNode( in visitFSUBForFMACombine()
13438 DAG.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(0)), in visitFSUBForFMACombine()
13439 DAG.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(1)), in visitFSUBForFMACombine()
13440 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
13458 return DAG.getNode( in visitFSUBForFMACombine()
13460 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
13461 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
13462 DAG.getNode( in visitFSUBForFMACombine()
13464 DAG.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(0)), in visitFSUBForFMACombine()
13465 DAG.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(1)), in visitFSUBForFMACombine()
13466 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
13482 return DAG.getNode( in visitFSUBForFMACombine()
13484 DAG.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), N1.getOperand(1), in visitFSUBForFMACombine()
13485 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13486 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
13487 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1200)), in visitFSUBForFMACombine()
13488 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1201), N0)); in visitFSUBForFMACombine()
13509 return DAG.getNode( in visitFSUBForFMACombine()
13511 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
13512 DAG.getNode(ISD::FP_EXTEND, SL, VT, N100)), in visitFSUBForFMACombine()
13513 DAG.getNode(ISD::FP_EXTEND, SL, VT, N101), in visitFSUBForFMACombine()
13514 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
13515 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
13516 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1020)), in visitFSUBForFMACombine()
13517 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1021), N0)); in visitFSUBForFMACombine()
13568 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
13571 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
13572 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
13591 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFMULForFMADistributiveCombine()
13592 DAG.getNode(ISD::FNEG, SL, VT, X.getOperand(1)), Y, in visitFMULForFMADistributiveCombine()
13595 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFMULForFMADistributiveCombine()
13596 DAG.getNode(ISD::FNEG, SL, VT, X.getOperand(1)), Y, in visitFMULForFMADistributiveCombine()
13597 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
13601 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
13602 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
13604 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
13640 return DAG.getNode(ISD::FADD, DL, VT, N0, N1); in visitFADD()
13644 return DAG.getNode(ISD::FADD, DL, VT, N1, N0); in visitFADD()
13659 return DAG.getNode(ISD::FSUB, DL, VT, N0, NegN1); in visitFADD()
13665 return DAG.getNode(ISD::FSUB, DL, VT, N1, NegN0); in visitFADD()
13677 SDValue Add = DAG.getNode(ISD::FADD, DL, VT, B, B); in visitFADD()
13678 return DAG.getNode(ISD::FSUB, DL, VT, N1, Add); in visitFADD()
13683 SDValue Add = DAG.getNode(ISD::FADD, DL, VT, B, B); in visitFADD()
13684 return DAG.getNode(ISD::FSUB, DL, VT, N0, Add); in visitFADD()
13711 SDValue NewC = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), N1); in visitFADD()
13712 return DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(0), NewC); in visitFADD()
13725 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), in visitFADD()
13727 return DAG.getNode(ISD::FMUL, DL, VT, N1, NewCFP); in visitFADD()
13734 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), in visitFADD()
13736 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), NewCFP); in visitFADD()
13746 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N1.getOperand(1), in visitFADD()
13748 return DAG.getNode(ISD::FMUL, DL, VT, N0, NewCFP); in visitFADD()
13755 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N1.getOperand(1), in visitFADD()
13757 return DAG.getNode(ISD::FMUL, DL, VT, N1.getOperand(0), NewCFP); in visitFADD()
13766 return DAG.getNode(ISD::FMUL, DL, VT, N1, in visitFADD()
13776 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFADD()
13786 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), in visitFADD()
13794 AddToWorklist(Fused.getNode()); in visitFADD()
13813 return DAG.getNode(ISD::STRICT_FSUB, DL, DAG.getVTList(VT, ChainVT), in visitSTRICT_FADD()
13821 return DAG.getNode(ISD::STRICT_FSUB, DL, DAG.getVTList(VT, ChainVT), in visitSTRICT_FADD()
13848 return DAG.getNode(ISD::FSUB, DL, VT, N0, N1); in visitFSUB()
13881 return DAG.getNode(ISD::FNEG, DL, VT, N1); in visitFSUB()
13891 return DAG.getNode(ISD::FNEG, DL, VT, N1->getOperand(1)); in visitFSUB()
13894 return DAG.getNode(ISD::FNEG, DL, VT, N1->getOperand(0)); in visitFSUB()
13900 return DAG.getNode(ISD::FADD, DL, VT, N0, NegN1); in visitFSUB()
13904 AddToWorklist(Fused.getNode()); in visitFSUB()
13934 return DAG.getNode(ISD::FMUL, DL, VT, N0, N1); in visitFMUL()
13939 return DAG.getNode(ISD::FMUL, DL, VT, N1, N0); in visitFMUL()
13954 SDValue MulConsts = DAG.getNode(ISD::FMUL, DL, VT, N01, N1); in visitFMUL()
13955 return DAG.getNode(ISD::FMUL, DL, VT, N00, MulConsts); in visitFMUL()
13964 SDValue MulConsts = DAG.getNode(ISD::FMUL, DL, VT, Two, N1); in visitFMUL()
13965 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), MulConsts); in visitFMUL()
13971 return DAG.getNode(ISD::FADD, DL, VT, N0, N0); in visitFMUL()
13976 return DAG.getNode(ISD::FNEG, DL, VT, N0); in visitFMUL()
13990 return DAG.getNode(ISD::FMUL, DL, VT, NegN0, NegN1); in visitFMUL()
14028 return DAG.getNode(ISD::FNEG, DL, VT, in visitFMUL()
14029 DAG.getNode(ISD::FABS, DL, VT, X)); in visitFMUL()
14031 return DAG.getNode(ISD::FABS, DL, VT, X); in visitFMUL()
14040 AddToWorklist(Fused.getNode()); in visitFMUL()
14066 return DAG.getNode(ISD::FMA, DL, VT, N0, N1, N2); in visitFMA()
14081 return DAG.getNode(ISD::FMA, DL, VT, NegN0, NegN1, N2); in visitFMA()
14091 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N1, N2); in visitFMA()
14093 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0, N2); in visitFMA()
14098 return DAG.getNode(ISD::FMA, SDLoc(N), VT, N1, N0, N2); in visitFMA()
14105 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFMA()
14106 DAG.getNode(ISD::FADD, DL, VT, N1, N2.getOperand(1))); in visitFMA()
14113 return DAG.getNode(ISD::FMA, DL, VT, N0.getOperand(0), in visitFMA()
14114 DAG.getNode(ISD::FMUL, DL, VT, N1, N0.getOperand(1)), in visitFMA()
14122 return DAG.getNode(ISD::FADD, DL, VT, N0, N2); in visitFMA()
14126 SDValue RHSNeg = DAG.getNode(ISD::FNEG, DL, VT, N0); in visitFMA()
14127 AddToWorklist(RHSNeg.getNode()); in visitFMA()
14128 return DAG.getNode(ISD::FADD, DL, VT, N2, RHSNeg); in visitFMA()
14136 return DAG.getNode(ISD::FMA, DL, VT, N0.getOperand(0), in visitFMA()
14137 DAG.getNode(ISD::FNEG, DL, VT, N1), N2); in visitFMA()
14144 return DAG.getNode( in visitFMA()
14146 DAG.getNode(ISD::FADD, DL, VT, N1, DAG.getConstantFP(1.0, DL, VT))); in visitFMA()
14151 return DAG.getNode( in visitFMA()
14153 DAG.getNode(ISD::FADD, DL, VT, N1, DAG.getConstantFP(-1.0, DL, VT))); in visitFMA()
14162 return DAG.getNode(ISD::FNEG, DL, VT, Neg); in visitFMA()
14228 SDValue Reciprocal = DAG.getNode(ISD::FDIV, DL, VT, FPOne, N1, Flags); in combineRepeatedFPDivisors()
14234 SDValue NewNode = DAG.getNode(ISD::FMUL, SDLoc(U), VT, Dividend, in combineRepeatedFPDivisors()
14237 } else if (U != Reciprocal.getNode()) { in combineRepeatedFPDivisors()
14267 return DAG.getNode(ISD::FDIV, SDLoc(N), VT, N0, N1); in visitFDIV()
14291 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFDIV()
14299 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
14304 RV = DAG.getNode(ISD::FP_EXTEND, SDLoc(N1), VT, RV); in visitFDIV()
14305 AddToWorklist(RV.getNode()); in visitFDIV()
14306 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
14312 RV = DAG.getNode(ISD::FP_ROUND, SDLoc(N1), VT, RV, N1.getOperand(1)); in visitFDIV()
14313 AddToWorklist(RV.getNode()); in visitFDIV()
14314 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
14327 if (Sqrt.getNode()) { in visitFDIV()
14340 SDValue AA = DAG.getNode(ISD::FMUL, DL, VT, A, A); in visitFDIV()
14342 DAG.getNode(ISD::FMUL, DL, VT, AA, Sqrt.getOperand(0)); in visitFDIV()
14344 return DAG.getNode(ISD::FMUL, DL, VT, N0, Rsqrt); in visitFDIV()
14347 recursivelyDeleteUnusedNodes(AAZ.getNode()); in visitFDIV()
14354 SDValue Div = DAG.getNode(ISD::FDIV, SDLoc(N1), VT, Rsqrt, Y); in visitFDIV()
14355 AddToWorklist(Div.getNode()); in visitFDIV()
14356 return DAG.getNode(ISD::FMUL, DL, VT, N0, Div); in visitFDIV()
14385 return DAG.getNode(ISD::FDIV, SDLoc(N), VT, NegN0, NegN1); in visitFDIV()
14404 return DAG.getNode(ISD::FREM, SDLoc(N), VT, N0, N1); in visitFREM()
14471 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1); in visitFCOPYSIGN()
14479 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
14482 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, in visitFCOPYSIGN()
14483 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0)); in visitFCOPYSIGN()
14492 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0.getOperand(0), N1); in visitFCOPYSIGN()
14496 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
14500 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1.getOperand(1)); in visitFCOPYSIGN()
14505 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1.getOperand(0)); in visitFCOPYSIGN()
14541 return DAG.getNode(ISD::FCBRT, SDLoc(N), VT, N->getOperand(0)); in visitFPOW()
14576 SDValue Sqrt = DAG.getNode(ISD::FSQRT, DL, VT, N->getOperand(0)); in visitFPOW()
14577 SDValue SqrtSqrt = DAG.getNode(ISD::FSQRT, DL, VT, Sqrt); in visitFPOW()
14581 return DAG.getNode(ISD::FMUL, DL, VT, Sqrt, SqrtSqrt); in visitFPOW()
14613 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0.getOperand(0)); in foldFPToIntToFP()
14617 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0.getOperand(0)); in foldFPToIntToFP()
14636 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
14644 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
14688 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
14696 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
14746 return DAG.getNode(ExtOp, SDLoc(N), VT, Src); in FoldIntToFPToInt()
14749 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Src); in FoldIntToFPToInt()
14765 return DAG.getNode(ISD::FP_TO_SINT, SDLoc(N), VT, N0); in visitFP_TO_SINT()
14780 return DAG.getNode(ISD::FP_TO_UINT, SDLoc(N), VT, N0); in visitFP_TO_UINT()
14793 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, N0, N1); in visitFP_ROUND()
14821 return DAG.getNode(ISD::FP_ROUND, DL, VT, N0.getOperand(0), in visitFP_ROUND()
14827 if (N0.getOpcode() == ISD::FCOPYSIGN && N0.getNode()->hasOneUse()) { in visitFP_ROUND()
14828 SDValue Tmp = DAG.getNode(ISD::FP_ROUND, SDLoc(N0), VT, in visitFP_ROUND()
14830 AddToWorklist(Tmp.getNode()); in visitFP_ROUND()
14831 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFP_ROUND()
14852 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, N0); in visitFP_EXTEND()
14857 return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), VT, N0.getOperand(0)); in visitFP_EXTEND()
14866 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, in visitFP_EXTEND()
14868 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, In); in visitFP_EXTEND()
14872 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitFP_EXTEND()
14880 CombineTo(N0.getNode(), in visitFP_EXTEND()
14881 DAG.getNode(ISD::FP_ROUND, SDLoc(N0), in visitFP_EXTEND()
14900 return DAG.getNode(ISD::FCEIL, SDLoc(N), VT, N0); in visitFCEIL()
14911 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0); in visitFTRUNC()
14935 return DAG.getNode(ISD::FFLOOR, SDLoc(N), VT, N0); in visitFFLOOR()
14947 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, N0); in visitFNEG()
14960 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0.getOperand(1), in visitFNEG()
14992 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N1, N0); in visitFMinMax()
15048 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFABS()
15057 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0)); in visitFABS()
15073 return DAG.getNode(ISD::BRCOND, SDLoc(N), MVT::Other, Chain, in visitBRCOND()
15088 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBRCOND()
15098 return DAG.getNode(ISD::BRCOND, SDLoc(N), MVT::Other, in visitBRCOND()
15161 SDValue Tmp = visitXOR(N.getNode()); in rebuildSetCC()
15163 if (!Tmp.getNode()) in rebuildSetCC()
15167 if (Tmp.getNode() == N.getNode()) in rebuildSetCC()
15218 if (Simp.getNode()) AddToWorklist(Simp.getNode()); in visitBR_CC()
15221 if (Simp.getNode() && Simp.getOpcode() == ISD::SETCC) in visitBR_CC()
15222 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBR_CC()
15292 Ptr.getNode()->hasOneUse()) in CombineToPreIndexedLoadStore()
15338 if (Val == Ptr || Ptr->isPredecessorOf(Val.getNode())) in CombineToPreIndexedLoadStore()
15352 for (SDNode::use_iterator UI = BasePtr.getNode()->use_begin(), in CombineToPreIndexedLoadStore()
15353 UE = BasePtr.getNode()->use_end(); in CombineToPreIndexedLoadStore()
15358 if (Use.getUser() == Ptr.getNode() || Use != BasePtr) in CombineToPreIndexedLoadStore()
15391 for (SDNode *Use : Ptr.getNode()->uses()) { in CombineToPreIndexedLoadStore()
15399 if (!canFoldInAddressingMode(Ptr.getNode(), Use, DAG, TLI)) in CombineToPreIndexedLoadStore()
15424 Result.getNode()->dump(&DAG); dbgs() << '\n'); in CombineToPreIndexedLoadStore()
15442 if (OtherUses[i]->getOperand(OffsetIdx).getNode() == BasePtr.getNode()) in CombineToPreIndexedLoadStore()
15444 assert(OtherUses[i]->getOperand(!OffsetIdx).getNode() == in CombineToPreIndexedLoadStore()
15445 BasePtr.getNode() && "Expected BasePtr operand"); in CombineToPreIndexedLoadStore()
15479 SDValue NewUse = DAG.getNode(Opcode, in CombineToPreIndexedLoadStore()
15488 deleteAndRecombine(Ptr.getNode()); in CombineToPreIndexedLoadStore()
15489 AddToWorklist(Result.getNode()); in CombineToPreIndexedLoadStore()
15514 for (SDNode *Use : BasePtr.getNode()->uses()) { in shouldCombineToPostInc()
15515 if (Use == Ptr.getNode()) in shouldCombineToPostInc()
15551 Ptr.getNode()->hasOneUse()) in getPostIndexedLoadStoreOp()
15569 Visited.insert(Ptr.getNode()); in getPostIndexedLoadStoreOp()
15612 dbgs() << "\nWith: "; Result.getNode()->dump(&DAG); in CombineToPostIndexedLoadStore()
15653 return DAG.getNode(Opc, SDLoc(LD), BP.getSimpleValueType(), BP, Inc); in SplitIndexingFromLoad()
15670 Val = DAG.getNode(ISD::FTRUNC, SDLoc(ST), STMemType, Val); in getTruncatedStoreValue()
15675 Val = DAG.getNode(ISD::TRUNCATE, SDLoc(ST), STMemType, Val); in getTruncatedStoreValue()
15698 Val = DAG.getNode(ISD::ANY_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
15701 Val = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
15704 Val = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
15715 StoreSDNode *ST = dyn_cast<StoreSDNode>(Chain.getNode()); in ForwardStoreValueToDirectLoad()
15799 auto Val = DAG.getNode(ISD::AND, SDLoc(LD), LDType, ST->getValue(), Mask); in ForwardStoreValueToDirectLoad()
15819 Val = DAG.getNode(ISD::TRUNCATE, SDLoc(LD), LDMemType, Val); in ForwardStoreValueToDirectLoad()
15830 deleteAndRecombine(Val.getNode()); in ForwardStoreValueToDirectLoad()
15854 dbgs() << "\nWith chain: "; Chain.getNode()->dump(&DAG); in visitLOAD()
15858 AddUsersToWorklist(Chain.getNode()); in visitLOAD()
15885 dbgs() << "\nWith: "; Undef.getNode()->dump(&DAG); in visitLOAD()
15912 assert(NewLoad.getNode() == N); in visitLOAD()
15938 SDValue Token = DAG.getNode(ISD::TokenFactor, SDLoc(N), in visitLOAD()
16196 BaseAddr = DAG->getNode(ISD::ADD, DL, ArithType, BaseAddr, in loadSlice()
16213 DAG->getNode(ISD::ZERO_EXTEND, SDLoc(LastInst), FinalType, LastInst); in loadSlice()
16500 SDValue Chain = DAG.getNode(ISD::TokenFactor, SDLoc(LD), MVT::Other, in SliceUpLoad()
16503 AddToWorklist(Chain.getNode()); in SliceUpLoad()
16517 !ISD::isNormalLoad(V->getOperand(0).getNode())) in CheckForMaskedLoad()
16562 if (LD == Chain.getNode()) in CheckForMaskedLoad()
16567 if (!LD->isOperandOf(Chain.getNode())) in CheckForMaskedLoad()
16610 IVal = DAG.getNode(ISD::SRL, DL, IVal.getValueType(), IVal, in ShrinkLoadReplaceStoreWithStore()
16629 IVal = DAG.getNode(ISD::TRUNCATE, SDLoc(IVal), VT, IVal); in ShrinkLoadReplaceStoreWithStore()
16686 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in ReduceLoadOpStoreWidth()
16687 Chain == SDValue(N0.getNode(), 1)) { in ReduceLoadOpStoreWidth()
16745 SDValue NewVal = DAG.getNode(Opc, SDLoc(Value), NewVT, NewLD, in ReduceLoadOpStoreWidth()
16752 AddToWorklist(NewPtr.getNode()); in ReduceLoadOpStoreWidth()
16753 AddToWorklist(NewLD.getNode()); in ReduceLoadOpStoreWidth()
16754 AddToWorklist(NewVal.getNode()); in ReduceLoadOpStoreWidth()
16771 if (ISD::isNormalStore(ST) && ISD::isNormalLoad(Value.getNode()) && in TransformFPLoadStorePair()
16812 AddToWorklist(NewLD.getNode()); in TransformFPLoadStorePair()
16813 AddToWorklist(NewST.getNode()); in TransformFPLoadStorePair()
16842 if (AddNode.getNode()->hasOneUse()) in isMulAddWithConstProfitable()
16852 SDNode *MulVar = AddNode.getOperand(0).getNode(); in isMulAddWithConstProfitable()
16856 OtherOp = Use->getOperand(1).getNode(); in isMulAddWithConstProfitable()
16858 OtherOp = Use->getOperand(0).getNode(); in isMulAddWithConstProfitable()
16888 OtherOp->getOperand(0).getNode() == MulVar) in isMulAddWithConstProfitable()
16909 if (Visited.insert(StoreNodes[i].MemNode->getChain().getNode()).second) in getMergeStoreChains()
16970 StoredVal = DAG.getNode(MemVT.isVector() ? ISD::CONCAT_VECTORS in mergeStoresOfConstantsOrVecElts()
16996 Val = DAG.getNode(OpC, SDLoc(Val), MemVT, Vec, Idx); in mergeStoresOfConstantsOrVecElts()
17003 StoredVal = DAG.getNode(MemVT.isVector() ? ISD::CONCAT_VECTORS in mergeStoresOfConstantsOrVecElts()
17072 AddToWorklist(NewChain.getNode()); in mergeStoresOfConstantsOrVecElts()
17083 if (!BasePtr.getBase().getNode() || BasePtr.getBase().isUndef()) in getStoreMergeCandidates()
17209 RootNode = St->getChain().getNode(); in getStoreMergeCandidates()
17214 RootNode = Ldn->getChain().getNode(); in getStoreMergeCandidates()
17256 Worklist.push_back(Op.getNode()); in checkMergeStoreCandidatesForDependencies()
17277 Worklist.push_back(N->getOperand(j).getNode()); in checkMergeStoreCandidatesForDependencies()
17559 if (LdBasePtr.getBase().getNode()) { in tryStoreMergeOfLoads()
17741 AddToWorklist(NewStoreChain.getNode()); in tryStoreMergeOfLoads()
17766 StoreOp = DAG.getNode(ISD::ROTL, LoadDL, JointMemOpVT, NewLoad, RotAmt); in tryStoreMergeOfLoads()
17788 SDValue(NewLoad.getNode(), 1)); in tryStoreMergeOfLoads()
17796 if (Val.getNode()->use_empty()) in tryStoreMergeOfLoads()
17797 recursivelyDeleteUnusedNodes(Val.getNode()); in tryStoreMergeOfLoads()
17911 SDValue Token = DAG.getNode(ISD::TokenFactor, SL, in replaceStoreChain()
17915 AddToWorklist(Token.getNode()); in replaceStoreChain()
17992 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, in replaceStoreOfFPConstant()
18040 assert(NewStore.getNode() == N); in visitSTORE()
18078 AddToWorklist(Value.getNode()); in visitSTORE()
18150 Value.getNode()->hasOneUse() && ST->isUnindexed() && in visitSTORE()
18217 if (!isAlias(Chain.getNode(), N)) in visitLIFETIME_END()
18338 Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Lo.getOperand(0)); in splitMergedValStore()
18339 Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Hi.getOperand(0)); in splitMergedValStore()
18368 ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Vec.getNode()); in combineInsertEltToShuffle()
18474 SDValue PaddedSubV = DAG.getNode(ISD::CONCAT_VECTORS, DL, ShufVT, ConcatOps); in combineInsertEltToShuffle()
18479 AddToWorklist(PaddedSubV.getNode()); in combineInsertEltToShuffle()
18480 AddToWorklist(DestVecBC.getNode()); in combineInsertEltToShuffle()
18481 AddToWorklist(Shuf.getNode()); in combineInsertEltToShuffle()
18541 SDValue NewOp = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, in visitINSERT_VECTOR_ELT()
18543 AddToWorklist(NewOp.getNode()); in visitINSERT_VECTOR_ELT()
18544 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(InVec.getNode()), in visitINSERT_VECTOR_ELT()
18560 Ops.append(InVec.getNode()->op_begin(), in visitINSERT_VECTOR_ELT()
18561 InVec.getNode()->op_end()); in visitINSERT_VECTOR_ELT()
18650 Load = DAG.getNode(ISD::TRUNCATE, SDLoc(EVE), ResultVT, Load); in scalarizeExtractedVectorLoad()
18662 AddToWorklistWithUsers(Load.getNode()); in scalarizeExtractedVectorLoad()
18676 Vec.getNode()->getNumValues() != 1) in scalarizeExtractedBinop()
18694 SDValue Ext0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Op0, Index); in scalarizeExtractedBinop()
18695 SDValue Ext1 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Op1, Index); in scalarizeExtractedBinop()
18696 return DAG.getNode(Vec.getOpcode(), DL, VT, Ext0, Ext1); in scalarizeExtractedBinop()
18786 return DAG.getNode(ISD::TRUNCATE, DL, ScalarVT, BCSrc); in visitEXTRACT_VECTOR_ELT()
18854 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ScalarVT, SVInVec, in visitEXTRACT_VECTOR_ELT()
18914 ISD::isNormalLoad(VecOp.getNode()) && in visitEXTRACT_VECTOR_ELT()
18915 !Index->hasPredecessor(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
18931 if (ISD::isNormalLoad(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
18935 ISD::isNormalLoad(VecOp.getOperand(0).getNode())) { in visitEXTRACT_VECTOR_ELT()
18967 if (ISD::isNormalLoad(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
18992 SDValue Elt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, in visitEXTRACT_VECTOR_ELT()
18995 return DAG.getNode(ISD::BITCAST, SL, ScalarVT, Elt); in visitEXTRACT_VECTOR_ELT()
19123 AddToWorklist(BV.getNode()); in reduceBuildVecExtToExtBuildVec()
19191 uint64_t ShiftAmt = In.getNode()->getConstantOperandVal(1); in reduceBuildVecTruncToBitCast()
19214 EVT InVT2 = VecIn2.getNode() ? VecIn2.getValueType() : InVT1; in createBuildVecShuffle()
19241 VecIn1 = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in createBuildVecShuffle()
19247 if (!VecIn2.getNode()) { in createBuildVecShuffle()
19250 VecIn2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, VecIn1, in createBuildVecShuffle()
19252 VecIn1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, VecIn1, ZeroIdx); in createBuildVecShuffle()
19274 VecIn2 = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, InVT1, in createBuildVecShuffle()
19282 VecIn2 = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in createBuildVecShuffle()
19315 VecIn2 = VecIn2.getNode() ? VecIn2 : DAG.getUNDEF(InVT1); in createBuildVecShuffle()
19320 Shuffle = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Shuffle, ZeroIdx); in createBuildVecShuffle()
19521 SDValue VecIn2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SplitVT, Vec, in reduceBuildVecToShuffle()
19523 SDValue VecIn1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SplitVT, Vec, in reduceBuildVecToShuffle()
19694 In = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, InVT, In, in convertBuildVecZextToZext()
19696 return DAG.getNode(FoundZeroExtend ? ISD::ZERO_EXTEND : ISD::ANY_EXTEND, DL, in convertBuildVecZextToZext()
19725 SDValue Concat = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), in visitBUILD_VECTOR()
19758 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), N->getValueType(0), in visitBUILD_VECTOR()
19779 return DAG.getNode(ISD::SPLAT_VECTOR, SDLoc(N), VT, V); in visitBUILD_VECTOR()
19798 SDValue ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT); in combineConcatVectorOfScalars()
19828 ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT); in combineConcatVectorOfScalars()
19983 SDValue NewConcat = DAG.getNode(ISD::CONCAT_VECTORS, DL, ConcatSrcVT, SrcOps); in combineConcatVectorOfCasts()
19984 return DAG.getNode(CastOpcode, DL, VT, NewConcat); in combineConcatVectorOfCasts()
20009 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in visitCONCAT_VECTORS()
20050 SDValue Res = DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), NVT, Scalar); in visitCONCAT_VECTORS()
20094 DAG.getNode(ISD::TRUNCATE, SDLoc(N), MinVT, Op.getOperand(i))); in visitCONCAT_VECTORS()
20137 if (SingleSource.getNode()) { in visitCONCAT_VECTORS()
20156 if (SingleSource.getNode()) in visitCONCAT_VECTORS()
20185 if (!TLI.isBinOp(BinOpcode) || BinOp.getNode()->getNumValues() != 1) in narrowInsertExtractVectorBinOp()
20210 return DAG.getNode(BinOpcode, SDLoc(Extract), SubVT, Sub0, Sub1, in narrowInsertExtractVectorBinOp()
20234 if (!TLI.isBinOp(BOpcode) || BinOp.getNode()->getNumValues() != 1) in narrowExtractedVectorBinOp()
20289 SDValue X = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
20291 SDValue Y = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
20293 SDValue NarrowBinOp = DAG.getNode(BOpcode, DL, NarrowBVT, X, Y, in narrowExtractedVectorBinOp()
20294 BinOp.getNode()->getFlags()); in narrowExtractedVectorBinOp()
20330 : DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
20334 : DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
20337 SDValue NarrowBinOp = DAG.getNode(BOpcode, DL, NarrowBVT, X, Y); in narrowExtractedVectorBinOp()
20422 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), NVT, V.getOperand(0), in visitEXTRACT_SUBVECTOR()
20444 SDValue NewExtract = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewExtVT, in visitEXTRACT_SUBVECTOR()
20463 DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewExtVT, in visitEXTRACT_SUBVECTOR()
20471 DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ScalarVT, in visitEXTRACT_SUBVECTOR()
20510 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NVT, in visitEXTRACT_SUBVECTOR()
20538 Src = DAG.getNode(ISD::TRUNCATE, SDLoc(N), InVT, Src); in visitEXTRACT_SUBVECTOR()
20570 return DAG.getNode( in visitEXTRACT_SUBVECTOR()
20632 return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Shuf0, Shuf1); in foldShuffleOfConcatUndefs()
20663 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, N0, N1); in partitionShuffleOfConcats()
20697 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in partitionShuffleOfConcats()
20735 if (N0AnyConst && !N1AnyConst && !ISD::isBuildVectorAllZeros(N0.getNode())) in combineShuffleOfScalars()
20737 if (!N0AnyConst && N1AnyConst && !ISD::isBuildVectorAllZeros(N1.getNode())) in combineShuffleOfScalars()
20842 DAG.getNode(ISD::ANY_EXTEND_VECTOR_INREG, in combineShuffleToVectorExtend()
21089 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(Shuf), Op0.getValueType(), in replaceShuffleOfInsert()
21182 TLI.isBinOp(N0.getOpcode()) && N0.getNode()->getNumValues() == 1) { in visitVECTOR_SHUFFLE()
21189 SDValue ExtL = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, L, Index); in visitVECTOR_SHUFFLE()
21190 SDValue ExtR = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, R, Index); in visitVECTOR_SHUFFLE()
21191 SDValue NewBO = DAG.getNode(N0.getOpcode(), DL, EltVT, ExtL, ExtR, in visitVECTOR_SHUFFLE()
21192 N0.getNode()->getFlags()); in visitVECTOR_SHUFFLE()
21193 SDValue Insert = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, NewBO); in visitVECTOR_SHUFFLE()
21201 SDNode *V = N0.getNode(); in visitVECTOR_SHUFFLE()
21206 V = ConvInput.getNode(); in visitVECTOR_SHUFFLE()
21221 if (!Base.getNode()) in visitVECTOR_SHUFFLE()
21290 SDValue NewCat = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, in visitVECTOR_SHUFFLE()
21411 if (!SV0.getNode() || SV0 == CurrentVec) { in visitVECTOR_SHUFFLE()
21418 if (!SV1.getNode() || SV1 == CurrentVec) { in visitVECTOR_SHUFFLE()
21513 N->isOnlyUserOf(N->getOperand(i).getNode())) { in visitVECTOR_SHUFFLE()
21540 if (TLI.isBinOp(SrcOpcode) && N->isOnlyUserOf(N0.getNode()) && in visitVECTOR_SHUFFLE()
21542 (SrcOpcode == N1.getOpcode() && N->isOnlyUserOf(N1.getNode())))) { in visitVECTOR_SHUFFLE()
21607 return DAG.getNode(SrcOpcode, DL, VT, LHS, RHS); in visitVECTOR_SHUFFLE()
21641 DAG.getNode(ISD::TRUNCATE, SDLoc(InVal), VT.getScalarType(), InVal); in visitSCALAR_TO_VECTOR()
21642 return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), VT, Val); in visitSCALAR_TO_VECTOR()
21660 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), SubVT, in visitSCALAR_TO_VECTOR()
21714 SDValue NewINSERT = DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), in visitINSERT_SUBVECTOR()
21726 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, N0.getOperand(0), in visitINSERT_SUBVECTOR()
21734 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, N0, in visitINSERT_SUBVECTOR()
21768 Res = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, NewVT, Res, N1Src, NewIdx); in visitINSERT_SUBVECTOR()
21783 SDValue NewOp = DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, in visitINSERT_SUBVECTOR()
21785 AddToWorklist(NewOp.getNode()); in visitINSERT_SUBVECTOR()
21786 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N0.getNode()), in visitINSERT_SUBVECTOR()
21800 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in visitINSERT_SUBVECTOR()
21827 return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), N->getValueType(0), in visitFP16_TO_FP()
21844 DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT.getVectorElementType(), N0, in visitVECREDUCE()
21847 Res = DAG.getNode(ISD::ANY_EXTEND, dl, N->getValueType(0), Res); in visitVECREDUCE()
21859 return DAG.getNode(NewOpcode, SDLoc(N), N->getValueType(0), N0); in visitVECREDUCE()
21979 SDValue X = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, Src0, IndexC); in scalarizeBinOpOfSplats()
21980 SDValue Y = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, Src1, IndexC); in scalarizeBinOpOfSplats()
21981 SDValue ScalarBO = DAG.getNode(Opcode, DL, EltVT, X, Y, N->getFlags()); in scalarizeBinOpOfSplats()
22033 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, LHS.getOperand(0), in SimplifyVBinOp()
22051 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, X, RHS, Flags); in SimplifyVBinOp()
22061 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, LHS, X, Flags); in SimplifyVBinOp()
22085 DAG.getNode(Opcode, DL, VT, DAG.getUNDEF(VT), DAG.getUNDEF(VT)); in SimplifyVBinOp()
22086 SDValue NarrowBO = DAG.getNode(Opcode, DL, NarrowVT, X, Y); in SimplifyVBinOp()
22087 return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, VecC, NarrowBO, Z); in SimplifyVBinOp()
22096 ISD::isBuildVectorOfConstantSDNodes(Op.getNode()); in SimplifyVBinOp()
22115 ConcatOps.push_back(DAG.getNode(Opcode, DL, NarrowVT, LHS.getOperand(i), in SimplifyVBinOp()
22119 return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in SimplifyVBinOp()
22139 if (SCC.getNode()) { in SimplifySelect()
22143 const SDNodeFlags Flags = N0.getNode()->getFlags(); in SimplifySelect()
22144 SDValue SETCC = DAG.getNode(ISD::SETCC, SDLoc(N0), in SimplifySelect()
22148 AddToWorklist(SETCC.getNode()); in SimplifySelect()
22276 SDNode *CondNode = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
22296 SDNode *CondLHS = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
22297 SDNode *CondRHS = TheSelect->getOperand(1).getNode(); in SimplifySelectOps()
22307 Addr = DAG.getNode(ISD::SELECT_CC, SDLoc(TheSelect), in SimplifySelectOps()
22344 CombineTo(LHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
22345 CombineTo(RHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
22386 auto *N2C = dyn_cast<ConstantSDNode>(N2.getNode()); in foldSelectCCToShiftAnd()
22391 SDValue Shift = DAG.getNode(ISD::SRL, DL, XType, N0, ShiftAmt); in foldSelectCCToShiftAnd()
22392 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
22395 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in foldSelectCCToShiftAnd()
22396 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
22402 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in foldSelectCCToShiftAnd()
22411 SDValue Shift = DAG.getNode(ISD::SRA, DL, XType, N0, ShiftAmt); in foldSelectCCToShiftAnd()
22412 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
22415 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in foldSelectCCToShiftAnd()
22416 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
22422 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in foldSelectCCToShiftAnd()
22437 if (!N->isOnlyUserOf(N0.getNode()) || !N->isOnlyUserOf(N1.getNode())) in foldSelectOfBinops()
22445 SDValue NewBinOp = DAG.getNode(BinOpc, DL, VT, NewSel, N1.getOperand(1)); in foldSelectOfBinops()
22459 SDValue NewBinOp = DAG.getNode(BinOpc, DL, VT, N1.getOperand(0), NewSel); in foldSelectOfBinops()
22503 Int = DAG.getNode(IsFabs ? ISD::AND : ISD::XOR, DL, IntVT, Int, in foldSignChangeInBitcast()
22505 AddToWorklist(Int.getNode()); in foldSignChangeInBitcast()
22556 AddToWorklist(Cond.getNode()); in convertSelectOfFPConstantsToLoadOffset()
22558 AddToWorklist(CstOffset.getNode()); in convertSelectOfFPConstantsToLoadOffset()
22559 CPIdx = DAG.getNode(ISD::ADD, DL, CPIdx.getValueType(), CPIdx, CstOffset); in convertSelectOfFPConstantsToLoadOffset()
22560 AddToWorklist(CPIdx.getNode()); in convertSelectOfFPConstantsToLoadOffset()
22577 auto *N1C = dyn_cast<ConstantSDNode>(N1.getNode()); in SimplifySelectCC()
22578 auto *N2C = dyn_cast<ConstantSDNode>(N2.getNode()); in SimplifySelectCC()
22579 auto *N3C = dyn_cast<ConstantSDNode>(N3.getNode()); in SimplifySelectCC()
22583 AddToWorklist(SCC.getNode()); in SimplifySelectCC()
22616 SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N0), VT, AndLHS, ShlAmt); in SimplifySelectCC()
22623 SDValue Shr = DAG.getNode(ISD::SRA, SDLoc(N0), VT, Shl, ShrAmt); in SimplifySelectCC()
22625 return DAG.getNode(ISD::AND, DL, VT, Shr, N3); in SimplifySelectCC()
22656 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), VT, SCC); in SimplifySelectCC()
22659 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), VT, SCC); in SimplifySelectCC()
22662 AddToWorklist(SCC.getNode()); in SimplifySelectCC()
22663 AddToWorklist(Temp.getNode()); in SimplifySelectCC()
22673 return DAG.getNode(ISD::SHL, DL, N2.getValueType(), Temp, in SimplifySelectCC()
22701 return DAG.getNode(ISD::CTTZ, DL, VT, N0); in SimplifySelectCC()
22708 return DAG.getNode(ISD::CTLZ, DL, VT, N0); in SimplifySelectCC()
22790 SDValue Ctlz = DAG.getNode(ISD::CTLZ, DL, VT, V); in BuildLogBase2()
22792 SDValue LogBase2 = DAG.getNode(ISD::SUB, DL, VT, Base, Ctlz); in BuildLogBase2()
22824 AddToWorklist(Est.getNode()); in BuildDivEstimate()
22836 MulEst = DAG.getNode(ISD::FMUL, DL, VT, N, Est, Flags); in BuildDivEstimate()
22837 AddToWorklist(MulEst.getNode()); in BuildDivEstimate()
22840 SDValue NewEst = DAG.getNode(ISD::FMUL, DL, VT, Op, MulEst, Flags); in BuildDivEstimate()
22841 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
22843 NewEst = DAG.getNode(ISD::FSUB, DL, VT, in BuildDivEstimate()
22845 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
22847 NewEst = DAG.getNode(ISD::FMUL, DL, VT, Est, NewEst, Flags); in BuildDivEstimate()
22848 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
22850 Est = DAG.getNode(ISD::FADD, DL, VT, MulEst, NewEst, Flags); in BuildDivEstimate()
22851 AddToWorklist(Est.getNode()); in BuildDivEstimate()
22855 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, N, Flags); in BuildDivEstimate()
22856 AddToWorklist(Est.getNode()); in BuildDivEstimate()
22880 SDValue HalfArg = DAG.getNode(ISD::FMUL, DL, VT, ThreeHalves, Arg, Flags); in buildSqrtNROneConst()
22881 HalfArg = DAG.getNode(ISD::FSUB, DL, VT, HalfArg, Arg, Flags); in buildSqrtNROneConst()
22885 SDValue NewEst = DAG.getNode(ISD::FMUL, DL, VT, Est, Est, Flags); in buildSqrtNROneConst()
22886 NewEst = DAG.getNode(ISD::FMUL, DL, VT, HalfArg, NewEst, Flags); in buildSqrtNROneConst()
22887 NewEst = DAG.getNode(ISD::FSUB, DL, VT, ThreeHalves, NewEst, Flags); in buildSqrtNROneConst()
22888 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, NewEst, Flags); in buildSqrtNROneConst()
22893 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, Arg, Flags); in buildSqrtNROneConst()
22918 SDValue AE = DAG.getNode(ISD::FMUL, DL, VT, Arg, Est, Flags); in buildSqrtNRTwoConst()
22919 SDValue AEE = DAG.getNode(ISD::FMUL, DL, VT, AE, Est, Flags); in buildSqrtNRTwoConst()
22920 SDValue RHS = DAG.getNode(ISD::FADD, DL, VT, AEE, MinusThree, Flags); in buildSqrtNRTwoConst()
22928 LHS = DAG.getNode(ISD::FMUL, DL, VT, Est, MinusHalf, Flags); in buildSqrtNRTwoConst()
22931 LHS = DAG.getNode(ISD::FMUL, DL, VT, AE, MinusHalf, Flags); in buildSqrtNRTwoConst()
22934 Est = DAG.getNode(ISD::FMUL, DL, VT, LHS, RHS, Flags); in buildSqrtNRTwoConst()
22967 AddToWorklist(Est.getNode()); in buildSqrtEstimateImpl()
22981 Est = DAG.getNode( in buildSqrtEstimateImpl()
23043 if (MUC0.BasePtr.getNode() && MUC0.BasePtr == MUC1.BasePtr && in isAlias()
23158 bool IsOpLoad = isa<LoadSDNode>(C.getNode()) && in GatherAllAliases()
23159 cast<LSBaseSDNode>(C.getNode())->isSimple(); in GatherAllAliases()
23160 if ((IsLoad && IsOpLoad) || !isAlias(N, C.getNode())) { in GatherAllAliases()
23178 if (!isAlias(N, C.getNode())) { in GatherAllAliases()
23197 if (!Visited.insert(Chain.getNode()).second) in GatherAllAliases()
23229 if (Chain.getNode()) in GatherAllAliases()
23300 if (!BasePtr.getBase().getNode()) in parallelizeChainedStores()
23397 AddToWorklist(TF.getNode()); in parallelizeChainedStores()
23399 AddToWorklist(Op.getNode()); in parallelizeChainedStores()
23411 if (!BasePtr.getBase().getNode()) in findBetterNeighborChains()