Lines Matching refs:getNode
330 AddToWorklist(Op.getNode()); in SimplifyDemandedBits()
876 AddToWorklist(Op.getNode()); in deleteAndRecombine()
990 ISD::isBuildVectorOfConstantFPSDNodes(V.getNode()); in isAnyConstantBuildVector()
1098 return DAG.getNode(Opc, DL, VT, N00, OpNode); in reassociateOpsCommutative()
1104 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N00, N1); in reassociateOpsCommutative()
1105 return DAG.getNode(Opc, DL, VT, OpNode, N01); in reassociateOpsCommutative()
1134 return DAG.getNode(Opc, DL, VT, SDValue(NE, 0), N01); in reassociateOpsCommutative()
1144 return DAG.getNode(Opc, DL, VT, SDValue(NE, 0), N00); in reassociateOpsCommutative()
1178 assert((!To[i].getNode() || in CombineTo()
1187 if (To[i].getNode()) in CombineTo()
1188 AddToWorklistWithUsers(To[i].getNode()); in CombineTo()
1213 AddToWorklistWithUsers(TLO.New.getNode()); in CommitTargetLoweringOpt()
1219 deleteAndRecombine(TLO.Old.getNode()); in CommitTargetLoweringOpt()
1234 AddToWorklist(Op.getNode()); in SimplifyDemandedBits()
1253 AddToWorklist(Op.getNode()); in SimplifyDemandedVectorElts()
1262 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, DL, VT, SDValue(ExtLoad, 0)); in ReplaceLoadWithPromotedLoad()
1270 AddToWorklist(Trunc.getNode()); in ReplaceLoadWithPromotedLoad()
1276 if (ISD::isUNINDEXEDLoad(Op.getNode())) { in PromoteOperand()
1292 return DAG.getNode(ISD::AssertSext, DL, PVT, Op0, Op.getOperand(1)); in PromoteOperand()
1296 return DAG.getNode(ISD::AssertZext, DL, PVT, Op0, Op.getOperand(1)); in PromoteOperand()
1301 return DAG.getNode(ExtOpc, DL, PVT, Op); in PromoteOperand()
1307 return DAG.getNode(ISD::ANY_EXTEND, DL, PVT, Op); in PromoteOperand()
1317 if (!NewOp.getNode()) in SExtPromoteOperand()
1319 AddToWorklist(NewOp.getNode()); in SExtPromoteOperand()
1322 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in SExtPromoteOperand()
1323 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, NewOp.getValueType(), NewOp, in SExtPromoteOperand()
1332 if (!NewOp.getNode()) in ZExtPromoteOperand()
1334 AddToWorklist(NewOp.getNode()); in ZExtPromoteOperand()
1337 ReplaceLoadWithPromotedLoad(Op.getNode(), NewOp.getNode()); in ZExtPromoteOperand()
1376 DAG.getNode(ISD::TRUNCATE, DL, VT, DAG.getNode(Opc, DL, PVT, NN0, NN1)); in PromoteIntBinOp()
1387 CombineTo(Op.getNode(), RV); in PromoteIntBinOp()
1391 if (Replace0 && Replace1 && N0->isPredecessorOf(N1.getNode())) { in PromoteIntBinOp()
1397 AddToWorklist(NN0.getNode()); in PromoteIntBinOp()
1398 ReplaceLoadWithPromotedLoad(N0.getNode(), NN0.getNode()); in PromoteIntBinOp()
1401 AddToWorklist(NN1.getNode()); in PromoteIntBinOp()
1402 ReplaceLoadWithPromotedLoad(N1.getNode(), NN1.getNode()); in PromoteIntBinOp()
1443 if (!N0.getNode()) in PromoteIntShiftOp()
1449 DAG.getNode(ISD::TRUNCATE, DL, VT, DAG.getNode(Opc, DL, PVT, N0, N1)); in PromoteIntShiftOp()
1452 ReplaceLoadWithPromotedLoad(Op.getOperand(0).getNode(), N0.getNode()); in PromoteIntShiftOp()
1484 return DAG.getNode(Op.getOpcode(), SDLoc(Op), VT, Op.getOperand(0)); in PromoteExtend()
1493 if (!ISD::isUNINDEXEDLoad(Op.getNode())) in PromoteLoad()
1513 SDNode *N = Op.getNode(); in PromoteLoad()
1521 SDValue Result = DAG.getNode(ISD::TRUNCATE, DL, VT, NewLD); in PromoteLoad()
1529 AddToWorklist(Result.getNode()); in PromoteLoad()
1554 Nodes.insert(ChildN.getNode()); in recursivelyDeleteUnusedNodes()
1617 if (!CombinedNodes.count(ChildN.getNode())) in Run()
1618 AddToWorklist(ChildN.getNode()); in Run()
1622 if (!RV.getNode()) in Run()
1631 if (RV.getNode() == N) in Run()
1641 DAG.ReplaceAllUsesWith(N, RV.getNode()); in Run()
1654 AddToWorklist(RV.getNode()); in Run()
1655 AddUsersToWorklist(RV.getNode()); in Run()
1825 if (!RV.getNode()) { in combine()
1841 if (!RV.getNode()) { in combine()
1871 if (!RV.getNode() && TLI.isCommutativeBinOp(N->getOpcode())) { in combine()
1907 if (getInputChainForNode(N->getOperand(0).getNode()) == N->getOperand(1)) in visitTokenFactor()
1909 if (getInputChainForNode(N->getOperand(1).getNode()) == N->getOperand(0)) in visitTokenFactor()
1961 if (Op.hasOneUse() && !is_contained(TFs, Op.getNode())) { in visitTokenFactor()
1963 TFs.push_back(Op.getNode()); in visitTokenFactor()
1971 if (SeenOps.insert(Op.getNode()).second) in visitTokenFactor()
1999 Worklist.push_back(std::make_pair(Op.getNode(), NumLeftToConsider++)); in visitTokenFactor()
2010 while (OrigOpNumber < Ops.size() && Ops[OrigOpNumber].getNode() != Op) in visitTokenFactor()
2049 AddToWorklist(i, Op.getNode(), CurOpNumber); in visitTokenFactor()
2055 AddToWorklist(i, CurNode->getOperand(0).getNode(), CurOpNumber); in visitTokenFactor()
2059 AddToWorklist(i, MemNode->getChain().getNode(), CurOpNumber); in visitTokenFactor()
2078 if (SeenChains.count(Op.getNode()) == 0) in visitTokenFactor()
2126 if (LD->isIndexed() || LD->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2131 if (ST->isIndexed() || ST->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2136 if (LD->isIndexed() || LD->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2141 if (ST->isIndexed() || ST->getBasePtr().getNode() != N) in canFoldInAddressingMode()
2233 SDValue NewBO = DAG.getNode(Opcode, SDLoc(N), VT, F0, FVal, N->getFlags()); in foldSelectWithIdentityConstant()
2239 SDValue NewBO = DAG.getNode(Opcode, SDLoc(N), VT, F0, TVal, N->getFlags()); in foldSelectWithIdentityConstant()
2305 SDValue NewCT = SelOpNo ? DAG.getNode(BinOpcode, DL, VT, CBO, CT) in foldBinOpIntoSelect()
2306 : DAG.getNode(BinOpcode, DL, VT, CT, CBO); in foldBinOpIntoSelect()
2312 SDValue NewCF = SelOpNo ? DAG.getNode(BinOpcode, DL, VT, CBO, CF) in foldBinOpIntoSelect()
2313 : DAG.getNode(BinOpcode, DL, VT, CF, CBO); in foldBinOpIntoSelect()
2360 return DAG.getNode(IsAdd ? ISD::SUB : ISD::ADD, DL, VT, C1, LowBit); in foldAddSubBoolOfMaskedVal()
2397 SDValue NewShift = DAG.getNode(IsAdd ? ISD::SRA : ISD::SRL, DL, VT, in foldAddSubOfSignBit()
2399 return DAG.getNode(ISD::ADD, DL, VT, NewShift, NewC); in foldAddSubOfSignBit()
2436 return DAG.getNode(ISD::ADD, DL, VT, N1, N0); in visitADDLike()
2444 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitADDLike()
2458 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), Sub); in visitADDLike()
2462 return DAG.getNode(ISD::SUB, DL, VT, Add, N0.getOperand(1)); in visitADDLike()
2477 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Not); in visitADDLike()
2488 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), Add); in visitADDLike()
2506 return DAG.getNode(ISD::ADD, DL, VT, in visitADDLike()
2507 DAG.getNode(ISD::ADD, DL, VT, N1, N0.getOperand(0)), in visitADDLike()
2519 return DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1)); in visitADDLike()
2523 return DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(1)); in visitADDLike()
2536 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2542 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), in visitADDLike()
2548 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2554 return DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(0), in visitADDLike()
2561 return DAG.getNode(N1.getOpcode(), DL, VT, N1.getOperand(0).getOperand(0), in visitADDLike()
2573 return DAG.getNode(ISD::SUB, DL, VT, in visitADDLike()
2574 DAG.getNode(ISD::ADD, SDLoc(N0), VT, N00, N10), in visitADDLike()
2575 DAG.getNode(ISD::ADD, SDLoc(N1), VT, N01, N11)); in visitADDLike()
2586 return DAG.getNode(ISD::USUBSAT, DL, VT, N0.getOperand(0), in visitADDLike()
2596 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), in visitADDLike()
2612 return DAG.getNode(ISD::SUB, DL, VT, A, Xor.getOperand(0)); in visitADDLike()
2621 SDValue Not = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0), in visitADDLike()
2623 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(1), Not); in visitADDLike()
2630 SDValue Xor = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), N1); in visitADDLike()
2631 return DAG.getNode(ISD::ADD, DL, VT, Xor, N0.getOperand(0)); in visitADDLike()
2661 return DAG.getNode(ISD::OR, DL, VT, N0, N1); in visitADD()
2677 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), VS); in visitADD()
2697 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), SV); in visitADD()
2721 return DAG.getNode(Opcode, DL, VT, N1, N0); in visitADDSAT()
2729 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitADDSAT()
2740 return DAG.getNode(ISD::ADD, DL, VT, N0, N1); in visitADDSAT()
2801 return DAG.getNode(IsAdd ? ISD::SUB : ISD::ADD, DL, VT, N0, N1.getOperand(0)); in foldAddSubMasked1()
2813 return DAG.getNode(ISD::SUB, DL, VT, N0, in visitADDLikeCommutative()
2814 DAG.getNode(ISD::SHL, DL, VT, in visitADDLikeCommutative()
2827 SDValue Not = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0), in visitADDLikeCommutative()
2829 return DAG.getNode(ISD::SUB, DL, VT, N1, Not); in visitADDLikeCommutative()
2837 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), N1); in visitADDLikeCommutative()
2838 return DAG.getNode(ISD::SUB, DL, VT, Add, N0.getOperand(1)); in visitADDLikeCommutative()
2843 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N1, N0.getOperand(1)); in visitADDLikeCommutative()
2844 return DAG.getNode(ISD::ADD, DL, VT, Sub, N0.getOperand(0)); in visitADDLikeCommutative()
2854 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitADDLikeCommutative()
2855 return DAG.getNode(ISD::SUB, DL, VT, N1, ZExt); in visitADDLikeCommutative()
2862 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitADDLikeCommutative()
2864 return DAG.getNode(ISD::SUB, DL, VT, N0, ZExt); in visitADDLikeCommutative()
2871 return DAG.getNode(ISD::ADDCARRY, DL, N1->getVTList(), in visitADDLikeCommutative()
2877 return DAG.getNode(ISD::ADDCARRY, DL, in visitADDLikeCommutative()
2892 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDC()
2893 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitADDC()
2899 return DAG.getNode(ISD::ADDC, DL, N->getVTList(), N1, N0); in visitADDC()
2903 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, in visitADDC()
2908 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDC()
2909 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitADDC()
2967 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDO()
2973 return DAG.getNode(N->getOpcode(), DL, N->getVTList(), N1, N0); in visitADDO()
2982 return CombineTo(N, DAG.getNode(ISD::ADD, DL, VT, N0, N1), in visitADDO()
2987 SDValue Sub = DAG.getNode(ISD::USUBO, DL, N->getVTList(), in visitADDO()
3014 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), N0, Y, in visitUADDOLike()
3021 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), N0, in visitUADDOLike()
3036 return DAG.getNode(ISD::ADDE, SDLoc(N), N->getVTList(), in visitADDE()
3041 return DAG.getNode(ISD::ADDC, SDLoc(N), N->getVTList(), N0, N1); in visitADDE()
3056 return DAG.getNode(ISD::ADDCARRY, DL, N->getVTList(), N1, N0, CarryIn); in visitADDCARRY()
3062 return DAG.getNode(ISD::UADDO, DL, N->getVTList(), N0, N1); in visitADDCARRY()
3070 AddToWorklist(CarryExt.getNode()); in visitADDCARRY()
3071 return CombineTo(N, DAG.getNode(ISD::AND, DL, VT, CarryExt, in visitADDCARRY()
3095 return DAG.getNode(ISD::SADDO_CARRY, DL, N->getVTList(), N1, N0, CarryIn); in visitSADDO_CARRY()
3101 return DAG.getNode(ISD::SADDO, DL, N->getVTList(), N0, N1); in visitSADDO_CARRY()
3158 SDValue NewY = DAG.getNode(ISD::ADDCARRY, DL, Carry0->getVTList(), A, B, Z); in combineADDCARRYDiamond()
3159 Combiner.AddToWorklist(NewY.getNode()); in combineADDCARRYDiamond()
3160 return DAG.getNode(ISD::ADDCARRY, DL, N->getVTList(), X, in combineADDCARRYDiamond()
3237 if (Carry1.getNode()->isOperandOf(Carry0.getNode())) in combineCarryDiamond()
3266 DAG.getNode(NewOp, DL, Carry1->getVTList(), Carry0.getOperand(0), in combineCarryDiamond()
3294 SDValue Sub = DAG.getNode(ISD::SUBCARRY, DL, N->getVTList(), N1, in visitADDCARRYLike()
3308 return DAG.getNode(ISD::ADDCARRY, SDLoc(N), N->getVTList(), in visitADDCARRYLike()
3336 return DAG.getNode(ISD::USUBSAT, DL, DstVT, LHS, RHS); in getTruncatedUSUBSAT()
3349 RHS = DAG.getNode(ISD::UMIN, DL, SrcVT, RHS, SatLimit); in getTruncatedUSUBSAT()
3350 RHS = DAG.getNode(ISD::TRUNCATE, DL, DstVT, RHS); in getTruncatedUSUBSAT()
3351 LHS = DAG.getNode(ISD::TRUNCATE, DL, DstVT, LHS); in getTruncatedUSUBSAT()
3352 return DAG.getNode(ISD::USUBSAT, DL, DstVT, LHS, RHS); in getTruncatedUSUBSAT()
3441 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitSUB()
3452 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3467 return DAG.getNode(NewSh, DL, VT, N1.getOperand(0), N1.getOperand(1)); in visitSUB()
3488 if (SDValue Result = TLI.expandABS(N1.getNode(), DAG, true)) in visitSUB()
3505 return DAG.getNode(ISD::XOR, DL, VT, N1, N0); in visitSUB()
3509 return DAG.getNode(ISD::ADD, DL, VT, N0, N1.getOperand(1)); in visitSUB()
3527 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), NewC); in visitSUB()
3534 return DAG.getNode(ISD::SUB, DL, VT, NewC, N1.getOperand(0)); in visitSUB()
3541 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), NewC); in visitSUB()
3548 return DAG.getNode(ISD::SUB, DL, VT, NewC, N0.getOperand(1)); in visitSUB()
3556 return DAG.getNode(N0.getOperand(1).getOpcode(), DL, VT, N0.getOperand(0), in visitSUB()
3562 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(0), in visitSUB()
3568 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), in visitSUB()
3573 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3574 DAG.getNode(ISD::SUB, DL, VT, N1.getOperand(1), in visitSUB()
3586 DAG.getNode(ISD::XOR, DL, VT, B, DAG.getAllOnesConstant(DL, VT)); in visitSUB()
3587 return DAG.getNode(ISD::AND, DL, VT, A, InvB); in visitSUB()
3595 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, in visitSUB()
3598 return DAG.getNode(ISD::ADD, DL, VT, N0, Mul); in visitSUB()
3602 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, in visitSUB()
3605 return DAG.getNode(ISD::ADD, DL, VT, N0, Mul); in visitSUB()
3629 SDValue Xor = DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), in visitSUB()
3631 return DAG.getNode(ISD::ADD, DL, VT, Xor, N0.getOperand(0)); in visitSUB()
3639 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0, N1.getOperand(0)); in visitSUB()
3640 return DAG.getNode(ISD::ADD, DL, VT, Add, DAG.getConstant(1, DL, VT)); in visitSUB()
3647 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), N1); in visitSUB()
3648 return DAG.getNode(ISD::ADD, DL, VT, Sub, N0.getOperand(1)); in visitSUB()
3653 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, N1.getOperand(0)); in visitSUB()
3654 return DAG.getNode(ISD::SUB, DL, VT, Sub, N1.getOperand(1)); in visitSUB()
3660 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), N1); in visitSUB()
3661 return DAG.getNode(ISD::SUB, DL, VT, Sub, N0.getOperand(1)); in visitSUB()
3666 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(1), N1); in visitSUB()
3667 return DAG.getNode(ISD::SUB, DL, VT, N0.getOperand(0), Add); in visitSUB()
3677 SDValue SExt = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, N1.getOperand(0)); in visitSUB()
3678 return DAG.getNode(ISD::ADD, DL, VT, N0, SExt); in visitSUB()
3689 return DAG.getNode(ISD::ABS, SDLoc(N), VT, S0); in visitSUB()
3712 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitSUB()
3714 return DAG.getNode(ISD::ADD, DL, VT, N0, ZExt); in visitSUB()
3721 return DAG.getNode(ISD::ADD, DL, VT, N0, DAG.getVScale(DL, VT, -IntVal)); in visitSUB()
3727 return DAG.getNode(ISD::ADD, DL, VT, N0, in visitSUB()
3738 SDValue SRA = DAG.getNode(ISD::SRA, DL, VT, N1.getOperand(0), ShAmt); in visitSUB()
3739 return DAG.getNode(ISD::ADD, DL, VT, N0, SRA); in visitSUB()
3749 return DAG.getNode(ISD::ADD, DL, VT, N1, N0); in visitSUB()
3757 SDValue NegX = DAG.getNode(ISD::SUB, DL, VT, Zero, X); in visitSUB()
3758 return DAG.getNode(ISD::ADDCARRY, DL, in visitSUB()
3771 return DAG.getNode(ISD::XOR, DL, VT, N1, N0); in visitSUB()
3802 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitSUBSAT()
3821 return CombineTo(N, DAG.getNode(ISD::SUB, DL, VT, N0, N1), in visitSUBC()
3822 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3827 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3831 return CombineTo(N, N0, DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3835 return CombineTo(N, DAG.getNode(ISD::XOR, DL, VT, N1, N0), in visitSUBC()
3836 DAG.getNode(ISD::CARRY_FALSE, DL, MVT::Glue)); in visitSUBC()
3852 return CombineTo(N, DAG.getNode(ISD::SUB, DL, VT, N0, N1), in visitSUBO()
3864 return DAG.getNode(ISD::SADDO, DL, N->getVTList(), N0, in visitSUBO()
3874 return CombineTo(N, DAG.getNode(ISD::XOR, DL, VT, N1, N0), in visitSUBO()
3887 return DAG.getNode(ISD::SUBC, SDLoc(N), N->getVTList(), N0, N1); in visitSUBE()
3901 return DAG.getNode(ISD::USUBO, SDLoc(N), N->getVTList(), N0, N1); in visitSUBCARRY()
3916 return DAG.getNode(ISD::SSUBO, SDLoc(N), N->getVTList(), N0, N1); in visitSSUBO_CARRY()
3937 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N1, N0, Scale); in visitMULFIX()
3963 return DAG.getNode(ISD::MUL, DL, VT, N1, N0); in visitMUL()
3974 N1IsConst = ISD::isConstantSplatVector(N1.getNode(), ConstValue1); in visitMUL()
3999 return DAG.getNode(ISD::SUB, DL, VT, in visitMUL()
4009 return DAG.getNode(ISD::SHL, DL, VT, N0, Trunc); in visitMUL()
4017 return DAG.getNode(ISD::SUB, DL, VT, in visitMUL()
4019 DAG.getNode(ISD::SHL, DL, VT, N0, in visitMUL()
4060 DAG.getNode(ISD::SHL, DL, VT, N0, DAG.getConstant(ShAmt, DL, VT)); in visitMUL()
4062 TZeros ? DAG.getNode(MathOp, DL, VT, Shl, in visitMUL()
4063 DAG.getNode(ISD::SHL, DL, VT, N0, in visitMUL()
4065 : DAG.getNode(MathOp, DL, VT, Shl, N0); in visitMUL()
4067 R = DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), R); in visitMUL()
4076 return DAG.getNode(ISD::MUL, DL, VT, N0.getOperand(0), C3); in visitMUL()
4094 if (Sh.getNode()) { in visitMUL()
4095 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, Sh.getOperand(0), Y); in visitMUL()
4096 return DAG.getNode(ISD::SHL, DL, VT, Mul, Sh.getOperand(1)); in visitMUL()
4105 return DAG.getNode( in visitMUL()
4107 DAG.getNode(ISD::MUL, SDLoc(N0), VT, N0.getOperand(0), N1), in visitMUL()
4108 DAG.getNode(ISD::MUL, SDLoc(N1), VT, N0.getOperand(1), N1)); in visitMUL()
4121 if (ISD::isConstantSplatVector(N1.getNode(), MulVal)) { in visitMUL()
4153 return DAG.getNode(ISD::AND, DL, VT, N0, DAG.getBuildVector(VT, DL, Mask)); in visitMUL()
4239 combined = DAG.getNode(DivRemOpc, SDLoc(Node), VTs, Op0, Op1); in useDivRem()
4321 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), N0); in visitSDIV()
4338 return DAG.getNode(ISD::UDIV, DL, N1.getValueType(), N0, N1); in visitSDIV()
4345 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, V, N1); in visitSDIV()
4346 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitSDIV()
4347 AddToWorklist(Mul.getNode()); in visitSDIV()
4348 AddToWorklist(Sub.getNode()); in visitSDIV()
4399 SDValue C1 = DAG.getNode(ISD::CTTZ, DL, VT, N1); in visitSDIVLike()
4401 SDValue Inexact = DAG.getNode(ISD::SUB, DL, ShiftAmtTy, Bits, C1); in visitSDIVLike()
4406 SDValue Sign = DAG.getNode(ISD::SRA, DL, VT, N0, in visitSDIVLike()
4408 AddToWorklist(Sign.getNode()); in visitSDIVLike()
4411 SDValue Srl = DAG.getNode(ISD::SRL, DL, VT, Sign, Inexact); in visitSDIVLike()
4412 AddToWorklist(Srl.getNode()); in visitSDIVLike()
4413 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0, Srl); in visitSDIVLike()
4414 AddToWorklist(Add.getNode()); in visitSDIVLike()
4415 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Add, C1); in visitSDIVLike()
4416 AddToWorklist(Sra.getNode()); in visitSDIVLike()
4424 SDValue IsOneOrAllOnes = DAG.getNode(ISD::OR, DL, CCVT, IsOne, IsAllOnes); in visitSDIVLike()
4430 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, Zero, Sra); in visitSDIVLike()
4484 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, V, N1); in visitUDIV()
4485 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitUDIV()
4486 AddToWorklist(Mul.getNode()); in visitUDIV()
4487 AddToWorklist(Sub.getNode()); in visitUDIV()
4512 AddToWorklist(LogBase2.getNode()); in visitUDIVLike()
4516 AddToWorklist(Trunc.getNode()); in visitUDIVLike()
4517 return DAG.getNode(ISD::SRL, DL, VT, N0, Trunc); in visitUDIVLike()
4526 AddToWorklist(LogBase2.getNode()); in visitUDIVLike()
4530 AddToWorklist(Trunc.getNode()); in visitUDIVLike()
4531 SDValue Add = DAG.getNode(ISD::ADD, DL, ADDVT, N1.getOperand(1), Trunc); in visitUDIVLike()
4532 AddToWorklist(Add.getNode()); in visitUDIVLike()
4533 return DAG.getNode(ISD::SRL, DL, VT, N0, Add); in visitUDIVLike()
4590 return DAG.getNode(ISD::UREM, DL, VT, N0, N1); in visitREM()
4595 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N1, NegOne); in visitREM()
4596 AddToWorklist(Add.getNode()); in visitREM()
4597 return DAG.getNode(ISD::AND, DL, VT, N0, Add); in visitREM()
4606 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N1, NegOne); in visitREM()
4607 AddToWorklist(Add.getNode()); in visitREM()
4608 return DAG.getNode(ISD::AND, DL, VT, N0, Add); in visitREM()
4630 if (OptimizedDiv.getNode() && OptimizedDiv.getNode() != N) { in visitREM()
4636 SDValue Mul = DAG.getNode(ISD::MUL, DL, VT, OptimizedDiv, N1); in visitREM()
4637 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, N0, Mul); in visitREM()
4638 AddToWorklist(OptimizedDiv.getNode()); in visitREM()
4639 AddToWorklist(Mul.getNode()); in visitREM()
4664 return DAG.getNode(ISD::MULHS, DL, N->getVTList(), N1, N0); in visitMULHS()
4672 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitMULHS()
4682 return DAG.getNode(ISD::SRA, DL, N0.getValueType(), N0, in visitMULHS()
4698 N0 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N0); in visitMULHS()
4699 N1 = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N1); in visitMULHS()
4700 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHS()
4701 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHS()
4704 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHS()
4724 return DAG.getNode(ISD::MULHU, DL, N->getVTList(), N1, N0); in visitMULHU()
4732 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitMULHU()
4753 SDValue SRLAmt = DAG.getNode( in visitMULHU()
4757 return DAG.getNode(ISD::SRL, DL, VT, N0, Trunc); in visitMULHU()
4768 N0 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N0); in visitMULHU()
4769 N1 = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N1); in visitMULHU()
4770 N1 = DAG.getNode(ISD::MUL, DL, NewVT, N0, N1); in visitMULHU()
4771 N1 = DAG.getNode(ISD::SRL, DL, NewVT, N1, in visitMULHU()
4774 return DAG.getNode(ISD::TRUNCATE, DL, VT, N1); in visitMULHU()
4801 return DAG.getNode(Opcode, DL, N->getVTList(), N1, N0); in visitAVG()
4808 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) { in visitAVG()
4810 return DAG.getNode(ISD::SRA, DL, VT, N0, DAG.getConstant(1, DL, VT)); in visitAVG()
4812 return DAG.getNode(ISD::SRL, DL, VT, N0, DAG.getConstant(1, DL, VT)); in visitAVG()
4836 SDValue Res = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), N->ops()); in SimplifyNodeWithTwoResults()
4844 SDValue Res = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), N->ops()); in SimplifyNodeWithTwoResults()
4854 SDValue Lo = DAG.getNode(LoOp, SDLoc(N), N->getValueType(0), N->ops()); in SimplifyNodeWithTwoResults()
4855 AddToWorklist(Lo.getNode()); in SimplifyNodeWithTwoResults()
4856 SDValue LoOpt = combine(Lo.getNode()); in SimplifyNodeWithTwoResults()
4857 if (LoOpt.getNode() && LoOpt.getNode() != Lo.getNode() && in SimplifyNodeWithTwoResults()
4864 SDValue Hi = DAG.getNode(HiOp, SDLoc(N), N->getValueType(1), N->ops()); in SimplifyNodeWithTwoResults()
4865 AddToWorklist(Hi.getNode()); in SimplifyNodeWithTwoResults()
4866 SDValue HiOpt = combine(Hi.getNode()); in SimplifyNodeWithTwoResults()
4867 if (HiOpt.getNode() && HiOpt != Hi && in SimplifyNodeWithTwoResults()
4888 return DAG.getNode(ISD::SMUL_LOHI, DL, N->getVTList(), N1, N0); in visitSMUL_LOHI()
4897 SDValue Lo = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N0); in visitSMUL_LOHI()
4898 SDValue Hi = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N1); in visitSMUL_LOHI()
4899 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitSMUL_LOHI()
4901 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitSMUL_LOHI()
4904 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitSMUL_LOHI()
4906 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitSMUL_LOHI()
4926 return DAG.getNode(ISD::UMUL_LOHI, DL, N->getVTList(), N1, N0); in visitUMUL_LOHI()
4947 SDValue Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N0); in visitUMUL_LOHI()
4948 SDValue Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N1); in visitUMUL_LOHI()
4949 Lo = DAG.getNode(ISD::MUL, DL, NewVT, Lo, Hi); in visitUMUL_LOHI()
4951 Hi = DAG.getNode(ISD::SRL, DL, NewVT, Lo, in visitUMUL_LOHI()
4954 Hi = DAG.getNode(ISD::TRUNCATE, DL, VT, Hi); in visitUMUL_LOHI()
4956 Lo = DAG.getNode(ISD::TRUNCATE, DL, VT, Lo); in visitUMUL_LOHI()
4991 return DAG.getNode(N->getOpcode(), DL, N->getVTList(), N1, N0); in visitMULO()
5002 return DAG.getNode(IsSigned ? ISD::SADDO : ISD::UADDO, DL, in visitMULO()
5008 SDValue And = DAG.getNode(ISD::AND, DL, VT, N0, N1); in visitMULO()
5021 return CombineTo(N, DAG.getNode(ISD::MUL, DL, VT, N0, N1), in visitMULO()
5029 return CombineTo(N, DAG.getNode(ISD::MUL, DL, VT, N0, N1), in visitMULO()
5142 SDValue Sat = DAG.getNode(NewOpc, DL, NewVT, Fp.getOperand(0), in PerformMinMaxFpToSatCombine()
5179 DAG.getNode(ISD::FP_TO_UINT_SAT, SDLoc(N0), NewVT, N0.getOperand(0), in PerformUMinFpToSatCombine()
5202 return DAG.getNode(Opcode, DL, VT, N1, N0); in visitIMINMAX()
5223 return DAG.getNode(AltOpcode, DL, VT, N0, N1); in visitIMINMAX()
5284 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
5285 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
5306 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
5307 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
5318 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
5319 return DAG.getNode(HandOpcode, DL, VT, Logic, N0.getOperand(1)); in hoistLogicOpWithSameOpcodeHands()
5327 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
5328 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
5344 SDValue Logic = DAG.getNode(LogicOpcode, DL, XVT, X, Y); in hoistLogicOpWithSameOpcodeHands()
5345 return DAG.getNode(HandOpcode, DL, VT, Logic); in hoistLogicOpWithSameOpcodeHands()
5382 if (N0.getOperand(1) == N1.getOperand(1) && ShOp.getNode()) { in hoistLogicOpWithSameOpcodeHands()
5383 SDValue Logic = DAG.getNode(LogicOpcode, DL, VT, in hoistLogicOpWithSameOpcodeHands()
5395 if (N0.getOperand(0) == N1.getOperand(0) && ShOp.getNode()) { in hoistLogicOpWithSameOpcodeHands()
5396 SDValue Logic = DAG.getNode(LogicOpcode, DL, VT, N0.getOperand(1), in hoistLogicOpWithSameOpcodeHands()
5451 SDValue Or = DAG.getNode(ISD::OR, SDLoc(N0), OpVT, LL, RL); in foldLogicOfSetCCs()
5452 AddToWorklist(Or.getNode()); in foldLogicOfSetCCs()
5470 SDValue And = DAG.getNode(ISD::AND, SDLoc(N0), OpVT, LL, RL); in foldLogicOfSetCCs()
5471 AddToWorklist(And.getNode()); in foldLogicOfSetCCs()
5484 SDValue Add = DAG.getNode(ISD::ADD, SDLoc(N0), OpVT, LL, One); in foldLogicOfSetCCs()
5485 AddToWorklist(Add.getNode()); in foldLogicOfSetCCs()
5496 SDValue XorL = DAG.getNode(ISD::XOR, SDLoc(N0), OpVT, LL, LR); in foldLogicOfSetCCs()
5497 SDValue XorR = DAG.getNode(ISD::XOR, SDLoc(N1), OpVT, RL, RR); in foldLogicOfSetCCs()
5498 SDValue Or = DAG.getNode(ISD::OR, DL, OpVT, XorL, XorR); in foldLogicOfSetCCs()
5517 SDValue Max = DAG.getNode(ISD::UMAX, DL, OpVT, LR, RR); in foldLogicOfSetCCs()
5518 SDValue Min = DAG.getNode(ISD::UMIN, DL, OpVT, LR, RR); in foldLogicOfSetCCs()
5519 SDValue Offset = DAG.getNode(ISD::SUB, DL, OpVT, LL, Min); in foldLogicOfSetCCs()
5520 SDValue Diff = DAG.getNode(ISD::SUB, DL, OpVT, Max, Min); in foldLogicOfSetCCs()
5522 SDValue And = DAG.getNode(ISD::AND, DL, OpVT, Offset, Mask); in foldLogicOfSetCCs()
5586 DAG.getNode(ISD::ADD, DL0, VT, in visitANDLike()
5588 CombineTo(N0.getNode(), NewAdd); in visitANDLike()
5634 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SL, HalfVT, in visitANDLike()
5639 SDValue Shift = DAG.getNode(ISD::SRL, SL, HalfVT, Trunc, ShiftK); in visitANDLike()
5640 SDValue And = DAG.getNode(ISD::AND, SL, HalfVT, Shift, NewMask); in visitANDLike()
5641 return DAG.getNode(ISD::ZERO_EXTEND, SL, VT, And); in visitANDLike()
5834 if (!SearchForAndLoads(Op.getNode(), Loads, NodesWithConsts, Mask, in SearchForAndLoads()
5845 NodeToMask = Op.getNode(); in SearchForAndLoads()
5890 SDValue And = DAG.getNode(ISD::AND, SDLoc(FixupNode), in BackwardsPropagateMask()
5895 DAG.UpdateNodeOperands(And.getNode(), SDValue(FixupNode, 0), MaskOp); in BackwardsPropagateMask()
5906 SDValue And = DAG.getNode(ISD::AND, SDLoc(Op1), Op1.getValueType(), in BackwardsPropagateMask()
5915 SDValue And = DAG.getNode(ISD::AND, SDLoc(Load), Load->getValueType(0), in BackwardsPropagateMask()
5920 DAG.UpdateNodeOperands(And.getNode(), SDValue(Load, 0), MaskOp), 0); in BackwardsPropagateMask()
5921 SDValue NewLoad = reduceLoadWidth(And.getNode()); in BackwardsPropagateMask()
5926 DAG.ReplaceAllUsesWith(N, N->getOperand(0).getNode()); in BackwardsPropagateMask()
5979 SDValue T0 = DAG.getNode(InnerShift, DL, VT, X, Y); in unfoldExtremeBitClearingToShifts()
5981 SDValue T1 = DAG.getNode(OuterShift, DL, VT, T0, Y); in unfoldExtremeBitClearingToShifts()
6056 SDValue NewAnd = DAG.getNode(ISD::AND, DL, VT, X, Mask); in combineShiftAnd1ToBitTest()
6092 return DAG.getNode(ISD::USUBSAT, DL, VT, N0.getOperand(0), SignMask); in foldAndToUsubsat()
6137 SDValue LogicX = DAG.getNode(LogicOpcode, DL, VT, X0, X1); in foldLogicOfShifts()
6138 SDValue NewShift = DAG.getNode(ShiftOpcode, DL, VT, LogicX, Y); in foldLogicOfShifts()
6139 return DAG.getNode(LogicOpcode, DL, VT, NewShift, Z); in foldLogicOfShifts()
6158 return DAG.getNode(ISD::AND, SDLoc(N), VT, N1, N0); in visitAND()
6166 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitAND()
6172 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) in visitAND()
6237 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), in visitAND()
6246 CombineTo(N0.getNode(), Zext); in visitAND()
6333 CombineTo(N, (N0.getNode() == Load) ? NewLoad : N0); in visitAND()
6368 DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), ExtVT, Extendee); in visitAND()
6370 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), VT, ZeroExtExtendee, in visitAND()
6381 isConstantSplatVectorMaskForType(N1.getNode(), ScalarVT) && in visitAND()
6391 AddToWorklist(ZExtLoad.getNode()); in visitAND()
6440 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, SubRHS.getOperand(0)); in visitAND()
6451 if (ISD::isUNINDEXEDLoad(N0.getNode()) && in visitAND()
6452 (ISD::isEXTLoad(N0.getNode()) || in visitAND()
6453 (ISD::isSEXTLoad(N0.getNode()) && N0.hasOneUse()))) { in visitAND()
6468 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitAND()
6475 if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitAND()
6509 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, N0.getOperand(0)); in visitAND()
6625 SDValue Res = DAG.getNode(ISD::BSWAP, SDLoc(N), VT, N00); in MatchBSwapHWordLow()
6628 Res = DAG.getNode(ISD::SRL, DL, VT, Res, in MatchBSwapHWordLow()
6721 Parts[MaskByteOffset] = N0.getOperand(0).getNode(); in isBSwapHWordElement()
6735 Parts[0] = Parts[1] = N.getOperand(0).getOperand(0).getNode(); in isBSwapHWordPair()
6779 SDValue BSwap = DAG.getNode(ISD::BSWAP, DL, VT, Shift0.getOperand(0)); in matchBSwapHWordOrAndAnd()
6781 return DAG.getNode(ISD::ROTR, DL, VT, BSwap, ShAmt); in matchBSwapHWordOrAndAnd()
6838 SDValue BSwap = DAG.getNode(ISD::BSWAP, DL, VT, in MatchBSwapHWord()
6845 return DAG.getNode(ISD::ROTL, DL, VT, BSwap, ShAmt); in MatchBSwapHWord()
6847 return DAG.getNode(ISD::ROTR, DL, VT, BSwap, ShAmt); in MatchBSwapHWord()
6848 return DAG.getNode(ISD::OR, DL, VT, in MatchBSwapHWord()
6849 DAG.getNode(ISD::SHL, DL, VT, BSwap, ShAmt), in MatchBSwapHWord()
6850 DAG.getNode(ISD::SRL, DL, VT, BSwap, ShAmt)); in MatchBSwapHWord()
6883 SDValue X = DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitORLike()
6885 return DAG.getNode(ISD::AND, DL, VT, X, in visitORLike()
6898 SDValue X = DAG.getNode(ISD::OR, SDLoc(N0), VT, in visitORLike()
6900 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), X); in visitORLike()
6918 return DAG.getNode(ISD::OR, SDLoc(N), VT, N00, N1); in visitORCommutative()
6923 return DAG.getNode(ISD::OR, SDLoc(N), VT, N01, N1); in visitORCommutative()
6966 return DAG.getNode(ISD::OR, SDLoc(N), VT, N1, N0); in visitOR()
6974 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitOR()
6978 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) in visitOR()
6987 bool ZeroN00 = ISD::isBuildVectorAllZeros(N0.getOperand(0).getNode()); in visitOR()
6988 bool ZeroN01 = ISD::isBuildVectorAllZeros(N0.getOperand(1).getNode()); in visitOR()
6989 bool ZeroN10 = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitOR()
6990 bool ZeroN11 = ISD::isBuildVectorAllZeros(N1.getOperand(1).getNode()); in visitOR()
7082 SDValue IOR = DAG.getNode(ISD::OR, SDLoc(N0), VT, N0.getOperand(0), N1); in visitOR()
7083 AddToWorklist(IOR.getNode()); in visitOR()
7084 return DAG.getNode(ISD::AND, SDLoc(N), VT, COR, IOR); in visitOR()
7185 return DAG.getNode(ISD::SHL, DL, ShiftedVT, OppShiftLHS, in extractShiftForRotate()
7265 return DAG.getNode(Opcode, DL, ResVT, OppShiftLHS, NewShiftNode); in extractShiftForRotate()
7416 return DAG.getNode(HasPos ? PosOpcode : NegOpcode, DL, VT, Shifted, in MatchRotatePosNeg()
7445 return DAG.getNode(HasPos ? PosOpcode : NegOpcode, DL, VT, N0, N1, in MatchFunnelPosNeg()
7466 return DAG.getNode(ISD::FSHL, DL, VT, N0, N1.getOperand(0), Pos); in MatchFunnelPosNeg()
7475 return DAG.getNode(ISD::FSHR, DL, VT, N0.getOperand(0), N1, Neg); in MatchFunnelPosNeg()
7485 return DAG.getNode(ISD::FSHR, DL, VT, N0.getOperand(0), N1, Neg); in MatchFunnelPosNeg()
7524 return DAG.getNode(ISD::TRUNCATE, SDLoc(LHS), LHS.getValueType(), Rot); in MatchRotate()
7593 if (LHSMask.getNode() || RHSMask.getNode()) { in MatchRotate()
7597 if (LHSMask.getNode()) { in MatchRotate()
7598 SDValue RHSBits = DAG.getNode(ISD::SRL, DL, VT, AllOnes, RHSShiftAmt); in MatchRotate()
7599 Mask = DAG.getNode(ISD::AND, DL, VT, Mask, in MatchRotate()
7600 DAG.getNode(ISD::OR, DL, VT, LHSMask, RHSBits)); in MatchRotate()
7602 if (RHSMask.getNode()) { in MatchRotate()
7603 SDValue LHSBits = DAG.getNode(ISD::SHL, DL, VT, AllOnes, LHSShiftAmt); in MatchRotate()
7604 Mask = DAG.getNode(ISD::AND, DL, VT, Mask, in MatchRotate()
7605 DAG.getNode(ISD::OR, DL, VT, RHSMask, LHSBits)); in MatchRotate()
7608 Res = DAG.getNode(ISD::AND, DL, VT, Res, Mask); in MatchRotate()
7641 SDValue RotX = DAG.getNode(ISD::ROTL, DL, VT, X, LHSShiftAmt); in MatchRotate()
7642 SDValue ShlY = DAG.getNode(ISD::SHL, DL, VT, Y, LHSShiftAmt); in MatchRotate()
7643 Res = DAG.getNode(ISD::OR, DL, VT, RotX, ShlY); in MatchRotate()
7646 SDValue RotX = DAG.getNode(ISD::ROTL, DL, VT, X, LHSShiftAmt); in MatchRotate()
7647 SDValue SrlY = DAG.getNode(ISD::SRL, DL, VT, Y, RHSShiftAmt); in MatchRotate()
7648 Res = DAG.getNode(ISD::OR, DL, VT, RotX, SrlY); in MatchRotate()
7668 Res = DAG.getNode(UseROTL ? ISD::ROTL : ISD::ROTR, DL, VT, LHSShiftArg, in MatchRotate()
7672 Res = DAG.getNode(UseFSHL ? ISD::FSHL : ISD::FSHR, DL, VT, LHSShiftArg, in MatchRotate()
7686 if (LHSMask.getNode() || RHSMask.getNode()) in MatchRotate()
7844 auto L = cast<LoadSDNode>(Op.getNode()); in calculateByteProvider()
8083 SourceValue = DAG.getNode(ISD::TRUNCATE, DL, WideVT, SourceValue); in mergeTruncStores()
8090 SourceValue = DAG.getNode(ISD::BSWAP, DL, WideVT, SourceValue); in mergeTruncStores()
8094 SourceValue = DAG.getNode(ISD::ROTR, DL, WideVT, SourceValue, RotAmt); in mergeTruncStores()
8102 DAG.ReplaceAllUsesWith(N, NewStore.getNode()); in mergeTruncStores()
8289 DAG.ReplaceAllUsesOfValueWith(SDValue(L, 1), SDValue(NewLoad.getNode(), 1)); in MatchLoadCombine()
8296 ? DAG.getNode(ISD::SHL, SDLoc(N), VT, NewLoad, in MatchLoadCombine()
8300 return DAG.getNode(ISD::BSWAP, SDLoc(N), VT, ShiftedLoad); in MatchLoadCombine()
8361 if (isa<ConstantSDNode>(M.getNode())) in unfoldMaskedMerge()
8376 SDValue LHS = DAG.getNode(ISD::AND, DL, VT, NotX, M); in unfoldMaskedMerge()
8378 SDValue RHS = DAG.getNode(ISD::OR, DL, VT, M, Y); in unfoldMaskedMerge()
8379 return DAG.getNode(ISD::AND, DL, VT, NotLHS, RHS); in unfoldMaskedMerge()
8388 SDValue LHS = DAG.getNode(ISD::OR, DL, VT, X, NotM); in unfoldMaskedMerge()
8390 SDValue RHS = DAG.getNode(ISD::AND, DL, VT, NotM, NotY); in unfoldMaskedMerge()
8392 return DAG.getNode(ISD::AND, DL, VT, LHS, NotRHS); in unfoldMaskedMerge()
8395 SDValue LHS = DAG.getNode(ISD::AND, DL, VT, X, M); in unfoldMaskedMerge()
8397 SDValue RHS = DAG.getNode(ISD::AND, DL, VT, Y, NotM); in unfoldMaskedMerge()
8399 return DAG.getNode(ISD::OR, DL, VT, LHS, RHS); in unfoldMaskedMerge()
8425 return DAG.getNode(ISD::XOR, DL, VT, N1, N0); in visitXOR()
8433 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) in visitXOR()
8482 recursivelyDeleteUnusedNodes(N0.getNode()); in visitXOR()
8496 V = DAG.getNode(ISD::XOR, DL0, V.getValueType(), V, in visitXOR()
8498 AddToWorklist(V.getNode()); in visitXOR()
8499 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, V); in visitXOR()
8508 N00 = DAG.getNode(ISD::XOR, SDLoc(N00), VT, N00, N1); // N00 = ~N00 in visitXOR()
8509 N01 = DAG.getNode(ISD::XOR, SDLoc(N01), VT, N01, N1); // N01 = ~N01 in visitXOR()
8510 AddToWorklist(N00.getNode()); AddToWorklist(N01.getNode()); in visitXOR()
8511 return DAG.getNode(NewOpcode, DL, VT, N00, N01); in visitXOR()
8520 N00 = DAG.getNode(ISD::XOR, SDLoc(N00), VT, N00, N1); // N00 = ~N00 in visitXOR()
8521 N01 = DAG.getNode(ISD::XOR, SDLoc(N01), VT, N01, N1); // N01 = ~N01 in visitXOR()
8522 AddToWorklist(N00.getNode()); AddToWorklist(N01.getNode()); in visitXOR()
8523 return DAG.getNode(NewOpcode, DL, VT, N00, N01); in visitXOR()
8532 return DAG.getNode(ISD::ADD, DL, VT, N0.getOperand(1), in visitXOR()
8539 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), in visitXOR()
8547 AddToWorklist(NotX.getNode()); in visitXOR()
8548 return DAG.getNode(ISD::AND, DL, VT, NotX, N1); in visitXOR()
8561 return DAG.getNode(ISD::ABS, DL, VT, S0); in visitXOR()
8589 return DAG.getNode(ISD::ROTL, DL, VT, DAG.getConstant(~1, DL, VT), in visitXOR()
8678 SDValue NewShift1 = DAG.getNode(ShiftOpcode, DL, VT, X, ShiftSumC); in combineShiftOfShiftedLogic()
8679 SDValue NewShift2 = DAG.getNode(ShiftOpcode, DL, VT, Y, C1); in combineShiftOfShiftedLogic()
8680 return DAG.getNode(LogicOpcode, DL, VT, NewShift1, NewShift2); in combineShiftOfShiftedLogic()
8751 SDValue NewRHS = DAG.getNode(N->getOpcode(), DL, VT, LHS.getOperand(1), in visitShiftByConstant()
8755 SDValue NewShift = DAG.getNode(N->getOpcode(), DL, VT, LHS.getOperand(0), in visitShiftByConstant()
8757 return DAG.getNode(LHS.getOpcode(), DL, VT, NewShift, NewRHS); in visitShiftByConstant()
8772 SDValue Trunc00 = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, N00); in distributeTruncateThroughAnd()
8773 SDValue Trunc01 = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, N01); in distributeTruncateThroughAnd()
8774 AddToWorklist(Trunc00.getNode()); in distributeTruncateThroughAnd()
8775 AddToWorklist(Trunc01.getNode()); in distributeTruncateThroughAnd()
8776 return DAG.getNode(ISD::AND, DL, TruncVT, Trunc00, Trunc01); in distributeTruncateThroughAnd()
8812 return DAG.getNode(N->getOpcode(), dl, VT, N0, Amt); in visitRotate()
8819 return DAG.getNode(ISD::BSWAP, dl, VT, N0); in visitRotate()
8828 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitRotate()
8829 return DAG.getNode(N->getOpcode(), dl, VT, N0, NewOp1); in visitRotate()
8853 return DAG.getNode(N->getOpcode(), dl, VT, N0->getOperand(0), in visitRotate()
8894 return DAG.getNode(ISD::AND, SDLoc(N), VT, N00, C); in visitSHL()
8910 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSHL()
8911 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, NewOp1); in visitSHL()
8938 SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1)); in visitSHL()
8939 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Sum); in visitSHL()
8982 SDValue Ext = DAG.getNode(N0.getOpcode(), DL, VT, N0Op0.getOperand(0)); in visitSHL()
8984 Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, Sum, N1); in visitSHL()
8985 return DAG.getNode(ISD::SHL, DL, VT, Ext, Sum); in visitSHL()
9009 NewSHL = DAG.getNode(ISD::SHL, DL, N0Op0.getValueType(), N0Op0, NewSHL); in visitSHL()
9010 AddToWorklist(NewSHL.getNode()); in visitSHL()
9011 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N0), VT, NewSHL); in visitSHL()
9033 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N1, N01); in visitSHL()
9034 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Diff); in visitSHL()
9040 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N01, N1); in visitSHL()
9041 return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0), Diff); in visitSHL()
9056 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N01, N1); in visitSHL()
9058 Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, N01); in visitSHL()
9059 Mask = DAG.getNode(ISD::SRL, DL, VT, Mask, Diff); in visitSHL()
9060 SDValue Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), Diff); in visitSHL()
9061 return DAG.getNode(ISD::AND, DL, VT, Shift, Mask); in visitSHL()
9067 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N1, N01); in visitSHL()
9069 Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, N1); in visitSHL()
9070 SDValue Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Diff); in visitSHL()
9071 return DAG.getNode(ISD::AND, DL, VT, Shift, Mask); in visitSHL()
9081 SDValue HiBitsMask = DAG.getNode(ISD::SHL, DL, VT, AllBits, N1); in visitSHL()
9082 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), HiBitsMask); in visitSHL()
9094 SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1); in visitSHL()
9095 SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); in visitSHL()
9096 AddToWorklist(Shl0.getNode()); in visitSHL()
9097 AddToWorklist(Shl1.getNode()); in visitSHL()
9098 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, Shl0, Shl1); in visitSHL()
9106 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N0.getOperand(0), Shl); in visitSHL()
9125 if (ISD::isConstantSplatVector(N1.getNode(), ShlVal)) { in visitSHL()
9216 DAG.getNode(MulhOpcode, DL, NarrowVT, LeftOp.getOperand(0), MulhRightOp); in combineShiftToMULH()
9260 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, in visitSRA()
9297 return DAG.getNode(ISD::SRA, DL, VT, N0.getOperand(0), ShiftValue); in visitSRA()
9331 SDValue Shift = DAG.getNode(ISD::SRL, DL, VT, in visitSRA()
9333 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, DL, TruncVT, in visitSRA()
9335 return DAG.getNode(ISD::SIGN_EXTEND, DL, in visitSRA()
9377 Add = DAG.getNode(ISD::ADD, DL, TruncVT, Trunc, ShiftC); in visitSRA()
9379 Add = DAG.getNode(ISD::SUB, DL, TruncVT, ShiftC, Trunc); in visitSRA()
9389 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSRA()
9390 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0, NewOp1); in visitSRA()
9410 Amt = DAG.getNode(ISD::ADD, DL, LargeShiftVT, Amt, in visitSRA()
9413 DAG.getNode(ISD::SRA, DL, LargeVT, N0Op0.getOperand(0), Amt); in visitSRA()
9414 return DAG.getNode(ISD::TRUNCATE, DL, VT, SRA); in visitSRA()
9425 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, N1); in visitSRA()
9492 SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1)); in visitSRL()
9493 return DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), Sum); in visitSRL()
9514 SDValue NewShift = DAG.getNode(ISD::SRL, DL, InnerShiftVT, in visitSRL()
9516 return DAG.getNode(ISD::TRUNCATE, DL, VT, NewShift); in visitSRL()
9524 SDValue NewShift = DAG.getNode(ISD::SRL, DL, InnerShiftVT, in visitSRL()
9529 SDValue And = DAG.getNode(ISD::AND, DL, InnerShiftVT, NewShift, Mask); in visitSRL()
9530 return DAG.getNode(ISD::TRUNCATE, DL, VT, And); in visitSRL()
9552 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N01, N1); in visitSRL()
9554 Mask = DAG.getNode(ISD::SRL, DL, VT, Mask, N01); in visitSRL()
9555 Mask = DAG.getNode(ISD::SHL, DL, VT, Mask, Diff); in visitSRL()
9556 SDValue Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), Diff); in visitSRL()
9557 return DAG.getNode(ISD::AND, DL, VT, Shift, Mask); in visitSRL()
9564 SDValue Diff = DAG.getNode(ISD::SUB, DL, ShiftVT, N1, N01); in visitSRL()
9566 Mask = DAG.getNode(ISD::SRL, DL, VT, Mask, N1); in visitSRL()
9567 SDValue Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), Diff); in visitSRL()
9568 return DAG.getNode(ISD::AND, DL, VT, Shift, Mask); in visitSRL()
9584 SDValue SmallShift = DAG.getNode(ISD::SRL, DL0, SmallVT, in visitSRL()
9588 AddToWorklist(SmallShift.getNode()); in visitSRL()
9591 return DAG.getNode(ISD::AND, DL, VT, in visitSRL()
9592 DAG.getNode(ISD::ANY_EXTEND, DL, VT, SmallShift), in visitSRL()
9601 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), N1); in visitSRL()
9629 Op = DAG.getNode(ISD::SRL, DL, VT, Op, in visitSRL()
9632 AddToWorklist(Op.getNode()); in visitSRL()
9636 return DAG.getNode(ISD::XOR, DL, VT, in visitSRL()
9644 if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode())) in visitSRL()
9645 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0, NewOp1); in visitSRL()
9724 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N0, N1, in visitFunnelShift()
9737 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N1, in visitFunnelShift()
9741 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, in visitFunnelShift()
9770 AddToWorklist(NewPtr.getNode()); in visitFunnelShift()
9792 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N1, N2); in visitFunnelShift()
9794 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, N2); in visitFunnelShift()
9803 return DAG.getNode(RotOpc, SDLoc(N), VT, N0, N2); in visitFunnelShift()
9831 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, N1); in visitSHLSAT()
9837 return DAG.getNode(ISD::SHL, SDLoc(N), VT, N0, N1); in visitSHLSAT()
9874 SDValue ABD = DAG.getNode(ABDOpcode, SDLoc(N), VT1, Op0, Op1); in combineABSToABD()
9875 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, ABD); in combineABSToABD()
9881 return DAG.getNode(ABDOpcode, SDLoc(N), VT, Op0, Op1); in combineABSToABD()
9892 return DAG.getNode(ISD::ABS, SDLoc(N), VT, N0); in visitABS()
9913 return DAG.getNode(ISD::BSWAP, DL, VT, N0); in visitBSWAP()
9923 SDValue BSwap = DAG.getNode(ISD::BSWAP, DL, VT, N0.getOperand(0)); in visitBSWAP()
9924 return DAG.getNode(ISD::BITREVERSE, DL, VT, BSwap); in visitBSWAP()
9940 Res = DAG.getNode(ISD::SHL, DL, VT, Res, in visitBSWAP()
9943 Res = DAG.getNode(ISD::BSWAP, DL, HalfVT, Res); in visitBSWAP()
9957 SDValue NewSwap = DAG.getNode(ISD::BSWAP, DL, VT, N0.getOperand(0)); in visitBSWAP()
9959 return DAG.getNode(InverseShift, DL, VT, NewSwap, N0.getOperand(1)); in visitBSWAP()
9972 return DAG.getNode(ISD::BITREVERSE, SDLoc(N), VT, N0); in visitBITREVERSE()
9985 return DAG.getNode(ISD::CTLZ, SDLoc(N), VT, N0); in visitCTLZ()
9990 return DAG.getNode(ISD::CTLZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTLZ()
10002 return DAG.getNode(ISD::CTLZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTLZ_ZERO_UNDEF()
10012 return DAG.getNode(ISD::CTTZ, SDLoc(N), VT, N0); in visitCTTZ()
10017 return DAG.getNode(ISD::CTTZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTTZ()
10029 return DAG.getNode(ISD::CTTZ_ZERO_UNDEF, SDLoc(N), VT, N0); in visitCTTZ_ZERO_UNDEF()
10039 return DAG.getNode(ISD::CTPOP, SDLoc(N), VT, N0); in visitCTPOP()
10077 return DAG.getNode(IEEEOpcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
10081 return DAG.getNode(Opcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
10092 return DAG.getNode(IEEEOpcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
10096 return DAG.getNode(Opcode, DL, VT, LHS, RHS); in combineMinNumMaxNum()
10128 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, X, ShAmtC); in foldSelectOfConstantsUsingSra()
10129 return DAG.getNode(ISD::OR, DL, VT, Sra, C1); in foldSelectOfConstantsUsingSra()
10135 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, X, ShAmtC); in foldSelectOfConstantsUsingSra()
10136 return DAG.getNode(ISD::AND, DL, VT, Sra, C1); in foldSelectOfConstantsUsingSra()
10166 NotCond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, NotCond); in foldSelectOfConstants()
10173 NotCond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, NotCond); in foldSelectOfConstants()
10179 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
10185 Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
10199 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
10200 return DAG.getNode(ISD::ADD, DL, VT, Cond, N2); in foldSelectOfConstants()
10205 Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
10206 return DAG.getNode(ISD::ADD, DL, VT, Cond, N2); in foldSelectOfConstants()
10212 Cond = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Cond); in foldSelectOfConstants()
10215 return DAG.getNode(ISD::SHL, DL, VT, Cond, ShAmtC); in foldSelectOfConstants()
10241 DAG.getNode(ISD::XOR, DL, CondVT, Cond, DAG.getConstant(1, DL, CondVT)); in foldSelectOfConstants()
10262 return DAG.getNode(ISD::OR, SDLoc(N), VT, Cond, F); in foldBoolSelectToLogic()
10267 return DAG.getNode(ISD::AND, SDLoc(N), VT, Cond, T); in foldBoolSelectToLogic()
10272 return DAG.getNode(ISD::OR, SDLoc(N), VT, NotCond, T); in foldBoolSelectToLogic()
10278 return DAG.getNode(ISD::AND, SDLoc(N), VT, NotCond, F); in foldBoolSelectToLogic()
10311 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Cond0, ShiftAmt); in foldVSelectToSignBitSplatMask()
10312 return DAG.getNode(ISD::AND, DL, VT, Sra, N1); in foldVSelectToSignBitSplatMask()
10319 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Cond0, ShiftAmt); in foldVSelectToSignBitSplatMask()
10320 return DAG.getNode(ISD::OR, DL, VT, Sra, N2); in foldVSelectToSignBitSplatMask()
10330 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Cond0, ShiftAmt); in foldVSelectToSignBitSplatMask()
10332 return DAG.getNode(ISD::AND, DL, VT, Not, N2); in foldVSelectToSignBitSplatMask()
10381 DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond1, N1, N2, Flags); in visitSELECT()
10383 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond0, in visitSELECT()
10387 recursivelyDeleteUnusedNodes(InnerSelect.getNode()); in visitSELECT()
10393 SDValue InnerSelect = DAG.getNode(ISD::SELECT, DL, N1.getValueType(), in visitSELECT()
10396 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Cond0, N1, in visitSELECT()
10400 recursivelyDeleteUnusedNodes(InnerSelect.getNode()); in visitSELECT()
10411 SDValue And = DAG.getNode(ISD::AND, DL, N0.getValueType(), N0, N1_0); in visitSELECT()
10412 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), And, N1_1, in visitSELECT()
10417 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Combined, N1_1, in visitSELECT()
10430 SDValue Or = DAG.getNode(ISD::OR, DL, N0.getValueType(), N0, N2_0); in visitSELECT()
10431 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Or, N1, in visitSELECT()
10436 return DAG.getNode(ISD::SELECT, DL, N1.getValueType(), Combined, N1, in visitSELECT()
10487 SDValue UAO = DAG.getNode(ISD::UADDO, DL, VTs, Cond0, N2.getOperand(1)); in visitSELECT()
10498 SDValue SelectNode = DAG.getNode(ISD::SELECT_CC, DL, VT, Cond0, Cond1, N1, in visitSELECT()
10545 else if (Cond->getOperand(i).getNode() != BottomHalf) in ConvertSelectToConcatVector()
10557 else if (Cond->getOperand(i).getNode() != TopHalf) in ConvertSelectToConcatVector()
10564 return DAG.getNode( in ConvertSelectToConcatVector()
10634 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMSCATTER()
10663 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMSTORE()
10668 if (ISD::isConstantSplatVectorAllOnes(Mask.getNode()) && MST->isUnindexed() && in visitMSTORE()
10730 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMGATHER()
10756 if (ISD::isConstantSplatVectorAllZeros(Mask.getNode())) in visitMLOAD()
10761 if (ISD::isConstantSplatVectorAllOnes(Mask.getNode()) && MLD->isUnindexed() && in visitMLOAD()
10786 !ISD::isBuildVectorOfConstantSDNodes(N1.getNode()) || in foldVSelectOfConstants()
10787 !ISD::isBuildVectorOfConstantSDNodes(N2.getNode())) in foldVSelectOfConstants()
10819 SDValue ExtendedCond = DAG.getNode(ExtendOpcode, DL, VT, Cond); in foldVSelectOfConstants()
10820 return DAG.getNode(ISD::ADD, DL, VT, ExtendedCond, N2); in foldVSelectOfConstants()
10825 if (ISD::isConstantSplatVector(N1.getNode(), Pow2C) && Pow2C.isPowerOf2() && in foldVSelectOfConstants()
10829 return DAG.getNode(ISD::SHL, DL, VT, ZextCond, ShAmtC); in foldVSelectOfConstants()
10868 bool RHSIsAllZeros = ISD::isBuildVectorAllZeros(RHS.getNode()); in visitVSELECT()
10871 (ISD::isBuildVectorAllOnes(RHS.getNode()) && CC == ISD::SETGT)) && in visitVSELECT()
10873 isAbs = ISD::isBuildVectorAllZeros(N2.getOperand(0).getNode()); in visitVSELECT()
10876 isAbs = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitVSELECT()
10880 return DAG.getNode(ISD::ABS, DL, VT, LHS); in visitVSELECT()
10882 SDValue Shift = DAG.getNode(ISD::SRA, DL, VT, LHS, in visitVSELECT()
10885 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, LHS, Shift); in visitVSELECT()
10886 AddToWorklist(Shift.getNode()); in visitVSELECT()
10887 AddToWorklist(Add.getNode()); in visitVSELECT()
10888 return DAG.getNode(ISD::XOR, DL, VT, Add, Shift); in visitVSELECT()
10930 SDValue WideLHS = DAG.getNode(ExtOpcode, DL, WideVT, LHS); in visitVSELECT()
10931 SDValue WideRHS = DAG.getNode(ExtOpcode, DL, WideVT, RHS); in visitVSELECT()
10944 if (ISD::isConstantSplatVectorAllOnes(N1.getNode())) { in visitVSELECT()
10947 } else if (ISD::isConstantSplatVectorAllOnes(N2.getNode())) { in visitVSELECT()
10966 return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10980 return DAG.getNode(ISD::UADDSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
10991 if (ISD::isConstantSplatVectorAllZeros(N1.getNode())) { in visitVSELECT()
10994 } else if (ISD::isConstantSplatVectorAllZeros(N2.getNode())) { in visitVSELECT()
11023 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
11040 OpRHS = DAG.getNode(ISD::SUB, DL, VT, in visitVSELECT()
11042 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
11052 ISD::isConstantSplatVector(OpRHS.getNode(), SplatValue) && in visitVSELECT()
11053 ISD::isConstantSplatVectorAllZeros(CondRHS.getNode()) && in visitVSELECT()
11058 return DAG.getNode(ISD::USUBSAT, DL, VT, OpLHS, OpRHS); in visitVSELECT()
11071 if (ISD::isConstantSplatVectorAllOnes(N0.getNode())) in visitVSELECT()
11074 if (ISD::isConstantSplatVectorAllZeros(N0.getNode())) in visitVSELECT()
11082 ISD::isBuildVectorOfConstantSDNodes(N0.getNode())) { in visitVSELECT()
11115 AddToWorklist(SCC.getNode()); in visitSELECT_CC()
11119 if (auto *SCCC = dyn_cast<ConstantSDNode>(SCC.getNode())) in visitSELECT_CC()
11129 SDValue SelectOp = DAG.getNode( in visitSELECT_CC()
11218 if (NewSetCC.getNode() == N) in visitSETCC()
11236 return DAG.getNode(ISD::SETCC, SDLoc(N), N->getVTList(), LHS, RHS, Cond); in visitSETCCCARRY()
11307 SDValue Ext1 = DAG.getNode(Opcode, DL, VT, Op1); in tryToFoldExtendSelectLoad()
11308 SDValue Ext2 = DAG.getNode(Opcode, DL, VT, Op2); in tryToFoldExtendSelectLoad()
11334 return DAG.getNode(Opcode, DL, VT, N0); in tryToFoldExtendOfConstant()
11357 DAG.getNode(FoldOpc, DL, VT, Op1), in tryToFoldExtendOfConstant()
11358 DAG.getNode(FoldOpc, DL, VT, Op2)); in tryToFoldExtendOfConstant()
11367 ISD::isBuildVectorOfConstantSDNodes(N0.getNode()))) in tryToFoldExtendOfConstant()
11477 Ops.push_back(DAG.getNode(ExtType, DL, ExtLoad->getValueType(0), SOp)); in ExtendSetCCUses()
11481 CombineTo(SetCC, DAG.getNode(ISD::SETCC, DL, SetCC->getValueType(0), Ops)); in ExtendSetCCUses()
11567 SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chains); in CombineExtLoad()
11568 SDValue NewValue = DAG.getNode(ISD::CONCAT_VECTORS, DL, DstVT, Loads); in CombineExtLoad()
11571 AddToWorklist(NewChain.getNode()); in CombineExtLoad()
11578 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), NewValue); in CombineExtLoad()
11580 CombineTo(N0.getNode(), Trunc, NewChain); in CombineExtLoad()
11627 if (!ExtendUsesToFormExtLoad(VT, N1.getNode(), N1.getOperand(0), in CombineZExtLogicopShiftLoad()
11637 SDValue Shift = DAG.getNode(N1.getOpcode(), DL1, VT, ExtLoad, in CombineZExtLogicopShiftLoad()
11642 SDValue And = DAG.getNode(N0.getOpcode(), DL0, VT, Shift, in CombineZExtLogicopShiftLoad()
11650 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(Load), in CombineZExtLogicopShiftLoad()
11656 recursivelyDeleteUnusedNodes(N0.getNode()); in CombineZExtLogicopShiftLoad()
11697 CastA = DAG.getNode(CastOpcode, DL, VT, A, Cast->getOperand(1)); in matchVSelectOpSizesWithSetCC()
11698 CastB = DAG.getNode(CastOpcode, DL, VT, B, Cast->getOperand(1)); in matchVSelectOpSizesWithSetCC()
11700 CastA = DAG.getNode(CastOpcode, DL, VT, A); in matchVSelectOpSizesWithSetCC()
11701 CastB = DAG.getNode(CastOpcode, DL, VT, B); in matchVSelectOpSizesWithSetCC()
11703 return DAG.getNode(ISD::VSELECT, DL, VT, SetCC, CastA, CastB); in matchVSelectOpSizesWithSetCC()
11712 SDNode *N0Node = N0.getNode(); in tryToFoldExtOfExtload()
11747 if (!ISD::isNON_EXTLoad(N0.getNode()) || in tryToFoldExtOfLoad()
11748 !ISD::isUNINDEXEDLoad(N0.getNode()) || in tryToFoldExtOfLoad()
11776 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), ExtLoad); in tryToFoldExtOfLoad()
11801 SDValue PassThru = DAG.getNode(ExtOpc, dl, VT, Ld->getPassThru()); in tryToFoldExtOfMaskedLoad()
11806 DAG.ReplaceAllUsesOfValueWith(SDValue(Ld, 1), SDValue(NewLoad.getNode(), 1)); in tryToFoldExtOfMaskedLoad()
11840 return DAG.getNode(ShiftOpcode, DL, VT, NotX, ShiftAmount); in foldExtendedSignBitTest()
11905 if (!(ISD::isNON_EXTLoad(V.getNode()) && in foldSextSetcc()
11906 ISD::isUNINDEXEDLoad(V.getNode()) && in foldSextSetcc()
11917 if (UI.getUse().getResNo() != 0 || User == N0.getNode()) in foldSextSetcc()
11929 SDValue Ext0 = DAG.getNode(ExtOpcode, DL, VT, N00); in foldSextSetcc()
11930 SDValue Ext1 = DAG.getNode(ExtOpcode, DL, VT, N01); in foldSextSetcc()
11986 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, N0.getOperand(0)); in visitSIGN_EXTEND()
11991 if (SDValue NarrowLoad = reduceLoadWidth(N0.getNode())) { in visitSIGN_EXTEND()
11992 SDNode *oye = N0.getOperand(0).getNode(); in visitSIGN_EXTEND()
11993 if (NarrowLoad.getNode() != N0.getNode()) { in visitSIGN_EXTEND()
11994 CombineTo(N0.getNode(), NarrowLoad); in visitSIGN_EXTEND()
12018 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Op); in visitSIGN_EXTEND()
12023 return DAG.getNode(ISD::TRUNCATE, DL, VT, Op); in visitSIGN_EXTEND()
12030 Op = DAG.getNode(ISD::ANY_EXTEND, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
12032 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(N0), VT, Op); in visitSIGN_EXTEND()
12033 return DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, VT, Op, in visitSIGN_EXTEND()
12071 bool DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND()
12079 SDValue And = DAG.getNode(N0.getOpcode(), DL, VT, in visitSIGN_EXTEND()
12088 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), And); in visitSIGN_EXTEND()
12089 CombineTo(N0.getNode(), TruncAnd); in visitSIGN_EXTEND()
12094 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(LN00), in visitSIGN_EXTEND()
12112 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0); in visitSIGN_EXTEND()
12124 return DAG.getNode(ISD::SUB, DL, VT, DAG.getConstant(0, DL, VT), Zext); in visitSIGN_EXTEND()
12133 return DAG.getNode(ISD::ADD, DL, VT, Zext, DAG.getAllOnesConstant(DL, VT)); in visitSIGN_EXTEND()
12142 if (SDValue NewXor = visitXOR(N0.getNode())) { in visitSIGN_EXTEND()
12145 if (NewXor.getNode() == N0.getNode()) { in visitSIGN_EXTEND()
12152 return DAG.getNode(ISD::SIGN_EXTEND, DL, VT, NewXor); in visitSIGN_EXTEND()
12155 SDValue Zext = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitSIGN_EXTEND()
12156 return DAG.getNode(ISD::ADD, DL, VT, Zext, DAG.getAllOnesConstant(DL, VT)); in visitSIGN_EXTEND()
12218 return DAG.getNode(ISD::CTPOP, DL, VT, NewZext); in widenCtPop()
12235 return DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N), VT, in visitZERO_EXTEND()
12259 if (SDValue NarrowLoad = reduceLoadWidth(N0.getNode())) { in visitZERO_EXTEND()
12260 SDNode *oye = N0.getOperand(0).getNode(); in visitZERO_EXTEND()
12261 if (NarrowLoad.getNode() != N0.getNode()) { in visitZERO_EXTEND()
12262 CombineTo(N0.getNode(), NarrowLoad); in visitZERO_EXTEND()
12279 AddToWorklist(Op.getNode()); in visitZERO_EXTEND()
12289 AddToWorklist(Op.getNode()); in visitZERO_EXTEND()
12310 return DAG.getNode(ISD::AND, DL, VT, in visitZERO_EXTEND()
12355 DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), in visitZERO_EXTEND()
12364 SDValue And = DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
12373 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), And); in visitZERO_EXTEND()
12374 CombineTo(N0.getNode(), TruncAnd); in visitZERO_EXTEND()
12379 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SDLoc(LN00), in visitZERO_EXTEND()
12420 SDValue VSetCC = DAG.getNode(ISD::SETCC, DL, VT, N0.getOperand(0), in visitZERO_EXTEND()
12430 DAG.getNode(ISD::SETCC, DL, MatchingVectorType, N0.getOperand(0), in visitZERO_EXTEND()
12445 return DAG.getNode(ISD::ZERO_EXTEND, DL, VT, SCC); in visitZERO_EXTEND()
12468 ShAmt = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i32, ShAmt); in visitZERO_EXTEND()
12470 return DAG.getNode(N0.getOpcode(), DL, VT, in visitZERO_EXTEND()
12471 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)), in visitZERO_EXTEND()
12504 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitANY_EXTEND()
12509 if (SDValue NarrowLoad = reduceLoadWidth(N0.getNode())) { in visitANY_EXTEND()
12510 SDNode *oye = N0.getOperand(0).getNode(); in visitANY_EXTEND()
12511 if (NarrowLoad.getNode() != N0.getNode()) { in visitANY_EXTEND()
12512 CombineTo(N0.getNode(), NarrowLoad); in visitANY_EXTEND()
12533 SDValue Y = DAG.getNode(ISD::ANY_EXTEND, DL, VT, N0.getOperand(1)); in visitANY_EXTEND()
12535 return DAG.getNode(ISD::AND, DL, VT, X, Y); in visitANY_EXTEND()
12547 } else if (ISD::isNON_EXTLoad(N0.getNode()) && in visitANY_EXTEND()
12548 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitANY_EXTEND()
12569 DAG.getNode(ISD::TRUNCATE, SDLoc(N0), N0.getValueType(), ExtLoad); in visitANY_EXTEND()
12579 if (N0.getOpcode() == ISD::LOAD && !ISD::isNON_EXTLoad(N0.getNode()) && in visitANY_EXTEND()
12580 ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) { in visitANY_EXTEND()
12671 SDValue NewAssert = DAG.getNode(Opcode, DL, BigA.getValueType(), in visitAssertExt()
12673 return DAG.getNode(ISD::TRUNCATE, DL, N->getValueType(0), NewAssert); in visitAssertExt()
12686 SDValue NewAssert = DAG.getNode(Opcode, DL, BigA.getValueType(), in visitAssertExt()
12688 return DAG.getNode(ISD::TRUNCATE, DL, N->getValueType(0), NewAssert); in visitAssertExt()
12725 return DAG.getNode(N0.getOpcode(), DL, N0.getValueType(), LHS, RHS); in visitAssertAlign()
12925 AddToWorklist(NewPtr.getNode()); in reduceLoadWidth()
12955 Result = DAG.getNode(ISD::SHL, DL, VT, in reduceLoadWidth()
12965 Result = DAG.getNode(ISD::SHL, DL, VT, Result, ShiftC); in reduceLoadWidth()
12987 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, N0, N1); in visitSIGN_EXTEND_INREG()
12996 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, N0.getOperand(0), in visitSIGN_EXTEND_INREG()
13009 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00); in visitSIGN_EXTEND_INREG()
13029 return DAG.getNode(ISD::SIGN_EXTEND_VECTOR_INREG, SDLoc(N), VT, N00); in visitSIGN_EXTEND_INREG()
13038 return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00, N1); in visitSIGN_EXTEND_INREG()
13065 return DAG.getNode(ISD::SRA, SDLoc(N), VT, N0.getOperand(0), in visitSIGN_EXTEND_INREG()
13074 if (ISD::isEXTLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
13075 ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
13086 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
13087 AddToWorklist(ExtLoad.getNode()); in visitSIGN_EXTEND_INREG()
13092 if (ISD::isZEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) && in visitSIGN_EXTEND_INREG()
13103 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
13118 CombineTo(N0.getNode(), ExtMaskedLoad, ExtMaskedLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
13136 CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1)); in visitSIGN_EXTEND_INREG()
13137 AddToWorklist(ExtLoad.getNode()); in visitSIGN_EXTEND_INREG()
13144 if (SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND_INREG()
13146 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, BSwap, N1); in visitSIGN_EXTEND_INREG()
13181 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
13185 SDValue C = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0); in visitTRUNCATE()
13186 if (C.getNode() != N) in visitTRUNCATE()
13196 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
13199 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
13213 SDValue TrX = DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, X); in visitTRUNCATE()
13214 return DAG.getNode(ISD::SIGN_EXTEND_INREG, SDLoc(N), VT, TrX, ExtVal); in visitTRUNCATE()
13251 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, TrTy, in visitTRUNCATE()
13263 SDValue TruncOp0 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(1)); in visitTRUNCATE()
13264 SDValue TruncOp1 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(2)); in visitTRUNCATE()
13265 return DAG.getNode(ISD::SELECT, SDLoc(N), VT, Cond, TruncOp0, TruncOp1); in visitTRUNCATE()
13280 SDValue Trunc = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(0)); in visitTRUNCATE()
13283 AddToWorklist(Amt.getNode()); in visitTRUNCATE()
13285 return DAG.getNode(ISD::SHL, SL, VT, Trunc, Amt); in visitTRUNCATE()
13289 if (SDValue V = foldSubToUSubSat(VT, N0.getNode())) in visitTRUNCATE()
13301 SDValue TruncOp = DAG.getNode(ISD::TRUNCATE, DL, SVT, Op); in visitTRUNCATE()
13345 if (N0.hasOneUse() && ISD::isUNINDEXEDLoad(N0.getNode())) { in visitTRUNCATE()
13386 assert(V.getNode() && "The single defined operand is empty!"); in visitTRUNCATE()
13393 SDValue NV = DAG.getNode(ISD::TRUNCATE, SDLoc(V), VTs[i], V); in visitTRUNCATE()
13394 AddToWorklist(NV.getNode()); in visitTRUNCATE()
13397 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Opnds); in visitTRUNCATE()
13414 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, VT, VecSrc, in visitTRUNCATE()
13432 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Shorter); in visitTRUNCATE()
13446 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N0->getOperand(0)), VT, in visitTRUNCATE()
13473 SDValue NarrowL = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(0)); in visitTRUNCATE()
13474 SDValue NarrowR = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(1)); in visitTRUNCATE()
13475 return DAG.getNode(N0.getOpcode(), DL, VT, NarrowL, NarrowR); in visitTRUNCATE()
13489 SDValue X = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(0)); in visitTRUNCATE()
13490 SDValue Y = DAG.getNode(ISD::TRUNCATE, DL, VT, N0.getOperand(1)); in visitTRUNCATE()
13492 return DAG.getNode(N0.getOpcode(), DL, VTs, X, Y, N0.getOperand(2)); in visitTRUNCATE()
13516 return Elt.getNode(); in getBuildPairElt()
13517 return Elt.getOperand(Elt.getResNo()).getNode(); in getBuildPairElt()
13601 SDValue FPOp = DAG.getNode(FPOpcode, SDLoc(N), VT, LogicOp0.getOperand(0)); in foldBitcastedFPLogic()
13604 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, FPOp); in foldBitcastedFPLogic()
13630 return ConstantFoldBITCASTofBUILD_VECTOR(N0.getNode(), in visitBITCAST()
13644 if (C.getNode() != N) in visitBITCAST()
13655 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitBITCAST()
13699 AddToWorklist(NewConv.getNode()); in visitBITCAST()
13709 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
13713 DAG.getNode(ISD::EXTRACT_ELEMENT, SDLoc(NewConv), MVT::i64, NewConv, in visitBITCAST()
13716 AddToWorklist(Hi.getNode()); in visitBITCAST()
13717 FlipBit = DAG.getNode(ISD::AND, SDLoc(N0), MVT::i64, Hi, SignBit); in visitBITCAST()
13718 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
13721 DAG.getNode(ISD::BUILD_PAIR, SDLoc(N0), VT, FlipBit, FlipBit); in visitBITCAST()
13722 AddToWorklist(FlipBits.getNode()); in visitBITCAST()
13723 return DAG.getNode(ISD::XOR, DL, VT, NewConv, FlipBits); in visitBITCAST()
13727 return DAG.getNode(ISD::XOR, DL, VT, in visitBITCAST()
13730 return DAG.getNode(ISD::AND, DL, VT, in visitBITCAST()
13752 AddToWorklist(X.getNode()); in visitBITCAST()
13757 X = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, X); in visitBITCAST()
13758 AddToWorklist(X.getNode()); in visitBITCAST()
13763 X = DAG.getNode(ISD::SRL, DL, in visitBITCAST()
13767 AddToWorklist(X.getNode()); in visitBITCAST()
13768 X = DAG.getNode(ISD::TRUNCATE, SDLoc(X), VT, X); in visitBITCAST()
13769 AddToWorklist(X.getNode()); in visitBITCAST()
13775 AddToWorklist(Cst.getNode()); in visitBITCAST()
13777 AddToWorklist(X.getNode()); in visitBITCAST()
13778 SDValue XorResult = DAG.getNode(ISD::XOR, SDLoc(N0), VT, Cst, X); in visitBITCAST()
13779 AddToWorklist(XorResult.getNode()); in visitBITCAST()
13780 SDValue XorResult64 = DAG.getNode( in visitBITCAST()
13784 AddToWorklist(XorResult64.getNode()); in visitBITCAST()
13786 DAG.getNode(ISD::AND, SDLoc(XorResult64), MVT::i64, XorResult64, in visitBITCAST()
13788 AddToWorklist(FlipBit.getNode()); in visitBITCAST()
13790 DAG.getNode(ISD::BUILD_PAIR, SDLoc(N0), VT, FlipBit, FlipBit); in visitBITCAST()
13791 AddToWorklist(FlipBits.getNode()); in visitBITCAST()
13792 return DAG.getNode(ISD::XOR, SDLoc(N), VT, Cst, FlipBits); in visitBITCAST()
13795 X = DAG.getNode(ISD::AND, SDLoc(X), VT, in visitBITCAST()
13797 AddToWorklist(X.getNode()); in visitBITCAST()
13800 Cst = DAG.getNode(ISD::AND, SDLoc(Cst), VT, in visitBITCAST()
13802 AddToWorklist(Cst.getNode()); in visitBITCAST()
13804 return DAG.getNode(ISD::OR, SDLoc(N), VT, X, Cst); in visitBITCAST()
13810 if (SDValue CombineLD = CombineConsecutiveLoads(N0.getNode(), VT)) in visitBITCAST()
13873 DAG.getNode(ISD::FREEZE, SDLoc(N0), in visitFREEZE()
13900 Op = DAG.getNode(ISD::TRUNCATE, SDLoc(BV), SrcEltVT, Op); in ConstantFoldBITCASTofBUILD_VECTOR()
13902 AddToWorklist(Ops.back().getNode()); in ConstantFoldBITCASTofBUILD_VECTOR()
13916 BV = ConstantFoldBITCASTofBUILD_VECTOR(BV, IntVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
13924 SDNode *Tmp = ConstantFoldBITCASTofBUILD_VECTOR(BV, TmpVT).getNode(); in ConstantFoldBITCASTofBUILD_VECTOR()
14028 return DAG.getNode(PreferredFusedOpcode, SL, VT, N0.getOperand(0), in visitFADDForFMACombine()
14035 return DAG.getNode(PreferredFusedOpcode, SL, VT, N1.getOperand(0), in visitFADDForFMACombine()
14059 SDValue CDE = DAG.getNode(PreferredFusedOpcode, SL, VT, C, D, E); in visitFADDForFMACombine()
14060 return DAG.getNode(PreferredFusedOpcode, SL, VT, A, B, CDE); in visitFADDForFMACombine()
14071 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
14072 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFADDForFMACombine()
14073 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFADDForFMACombine()
14085 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
14086 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0)), in visitFADDForFMACombine()
14087 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), in visitFADDForFMACombine()
14098 return DAG.getNode(PreferredFusedOpcode, SL, VT, X, Y, in visitFADDForFMACombine()
14099 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
14100 DAG.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
14101 DAG.getNode(ISD::FP_EXTEND, SL, VT, V), in visitFADDForFMACombine()
14125 return DAG.getNode( in visitFADDForFMACombine()
14126 PreferredFusedOpcode, SL, VT, DAG.getNode(ISD::FP_EXTEND, SL, VT, X), in visitFADDForFMACombine()
14127 DAG.getNode(ISD::FP_EXTEND, SL, VT, Y), in visitFADDForFMACombine()
14128 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFADDForFMACombine()
14129 DAG.getNode(ISD::FP_EXTEND, SL, VT, U), in visitFADDForFMACombine()
14130 DAG.getNode(ISD::FP_EXTEND, SL, VT, V), Z)); in visitFADDForFMACombine()
14232 return DAG.getNode(PreferredFusedOpcode, SL, VT, XY.getOperand(0), in visitFSUBForFMACombine()
14233 XY.getOperand(1), DAG.getNode(ISD::FNEG, SL, VT, Z)); in visitFSUBForFMACombine()
14242 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14243 DAG.getNode(ISD::FNEG, SL, VT, YZ.getOperand(0)), in visitFSUBForFMACombine()
14273 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14274 DAG.getNode(ISD::FNEG, SL, VT, N00), N01, in visitFSUBForFMACombine()
14275 DAG.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
14287 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14288 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
14289 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
14290 DAG.getNode(ISD::FNEG, SL, VT, N1)); in visitFSUBForFMACombine()
14302 return DAG.getNode( in visitFSUBForFMACombine()
14304 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
14305 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(0))), in visitFSUBForFMACombine()
14306 DAG.getNode(ISD::FP_EXTEND, SL, VT, N10.getOperand(1)), N0); in visitFSUBForFMACombine()
14323 return DAG.getNode( in visitFSUBForFMACombine()
14325 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14326 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
14327 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
14346 return DAG.getNode( in visitFSUBForFMACombine()
14348 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14349 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(0)), in visitFSUBForFMACombine()
14350 DAG.getNode(ISD::FP_EXTEND, SL, VT, N000.getOperand(1)), in visitFSUBForFMACombine()
14362 return isContractableFMUL(N) && isReassociable(N.getNode()); in visitFSUBForFMACombine()
14378 return DAG.getNode(PreferredFusedOpcode, SL, VT, N0.getOperand(0), in visitFSUBForFMACombine()
14380 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14383 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
14393 return DAG.getNode( in visitFSUBForFMACombine()
14395 DAG.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), N1.getOperand(1), in visitFSUBForFMACombine()
14396 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14397 DAG.getNode(ISD::FNEG, SL, VT, N20), N21, N0)); in visitFSUBForFMACombine()
14409 return DAG.getNode( in visitFSUBForFMACombine()
14411 DAG.getNode( in visitFSUBForFMACombine()
14413 DAG.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(0)), in visitFSUBForFMACombine()
14414 DAG.getNode(ISD::FP_EXTEND, SL, VT, N020.getOperand(1)), in visitFSUBForFMACombine()
14415 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
14433 return DAG.getNode( in visitFSUBForFMACombine()
14435 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(0)), in visitFSUBForFMACombine()
14436 DAG.getNode(ISD::FP_EXTEND, SL, VT, N00.getOperand(1)), in visitFSUBForFMACombine()
14437 DAG.getNode( in visitFSUBForFMACombine()
14439 DAG.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(0)), in visitFSUBForFMACombine()
14440 DAG.getNode(ISD::FP_EXTEND, SL, VT, N002.getOperand(1)), in visitFSUBForFMACombine()
14441 DAG.getNode(ISD::FNEG, SL, VT, N1))); in visitFSUBForFMACombine()
14456 return DAG.getNode( in visitFSUBForFMACombine()
14458 DAG.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), N1.getOperand(1), in visitFSUBForFMACombine()
14459 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14460 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
14461 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1200)), in visitFSUBForFMACombine()
14462 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1201), N0)); in visitFSUBForFMACombine()
14482 return DAG.getNode( in visitFSUBForFMACombine()
14484 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
14485 DAG.getNode(ISD::FP_EXTEND, SL, VT, N100)), in visitFSUBForFMACombine()
14486 DAG.getNode(ISD::FP_EXTEND, SL, VT, N101), in visitFSUBForFMACombine()
14487 DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFSUBForFMACombine()
14488 DAG.getNode(ISD::FNEG, SL, VT, in visitFSUBForFMACombine()
14489 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1020)), in visitFSUBForFMACombine()
14490 DAG.getNode(ISD::FP_EXTEND, SL, VT, N1021), N0)); in visitFSUBForFMACombine()
14542 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
14545 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
14546 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
14565 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFMULForFMADistributiveCombine()
14566 DAG.getNode(ISD::FNEG, SL, VT, X.getOperand(1)), Y, in visitFMULForFMADistributiveCombine()
14569 return DAG.getNode(PreferredFusedOpcode, SL, VT, in visitFMULForFMADistributiveCombine()
14570 DAG.getNode(ISD::FNEG, SL, VT, X.getOperand(1)), Y, in visitFMULForFMADistributiveCombine()
14571 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
14575 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
14576 DAG.getNode(ISD::FNEG, SL, VT, Y)); in visitFMULForFMADistributiveCombine()
14578 return DAG.getNode(PreferredFusedOpcode, SL, VT, X.getOperand(0), Y, in visitFMULForFMADistributiveCombine()
14613 return DAG.getNode(ISD::FADD, DL, VT, N1, N0); in visitFADD()
14633 return DAG.getNode(ISD::FSUB, DL, VT, N0, NegN1); in visitFADD()
14639 return DAG.getNode(ISD::FSUB, DL, VT, N1, NegN0); in visitFADD()
14651 SDValue Add = DAG.getNode(ISD::FADD, DL, VT, B, B); in visitFADD()
14652 return DAG.getNode(ISD::FSUB, DL, VT, N1, Add); in visitFADD()
14657 SDValue Add = DAG.getNode(ISD::FADD, DL, VT, B, B); in visitFADD()
14658 return DAG.getNode(ISD::FSUB, DL, VT, N0, Add); in visitFADD()
14685 SDValue NewC = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), N1); in visitFADD()
14686 return DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(0), NewC); in visitFADD()
14699 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), in visitFADD()
14701 return DAG.getNode(ISD::FMUL, DL, VT, N1, NewCFP); in visitFADD()
14708 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), in visitFADD()
14710 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), NewCFP); in visitFADD()
14720 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N1.getOperand(1), in visitFADD()
14722 return DAG.getNode(ISD::FMUL, DL, VT, N0, NewCFP); in visitFADD()
14729 SDValue NewCFP = DAG.getNode(ISD::FADD, DL, VT, N1.getOperand(1), in visitFADD()
14731 return DAG.getNode(ISD::FMUL, DL, VT, N1.getOperand(0), NewCFP); in visitFADD()
14740 return DAG.getNode(ISD::FMUL, DL, VT, N1, in visitFADD()
14750 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFADD()
14760 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), in visitFADD()
14768 AddToWorklist(Fused.getNode()); in visitFADD()
14787 return DAG.getNode(ISD::STRICT_FSUB, DL, DAG.getVTList(VT, ChainVT), in visitSTRICT_FADD()
14795 return DAG.getNode(ISD::STRICT_FSUB, DL, DAG.getVTList(VT, ChainVT), in visitSTRICT_FADD()
14855 return DAG.getNode(ISD::FNEG, DL, VT, N1); in visitFSUB()
14865 return DAG.getNode(ISD::FNEG, DL, VT, N1->getOperand(1)); in visitFSUB()
14868 return DAG.getNode(ISD::FNEG, DL, VT, N1->getOperand(0)); in visitFSUB()
14874 return DAG.getNode(ISD::FADD, DL, VT, N0, NegN1); in visitFSUB()
14878 AddToWorklist(Fused.getNode()); in visitFSUB()
14905 return DAG.getNode(ISD::FMUL, DL, VT, N1, N0); in visitFMUL()
14925 SDValue MulConsts = DAG.getNode(ISD::FMUL, DL, VT, N01, N1); in visitFMUL()
14926 return DAG.getNode(ISD::FMUL, DL, VT, N00, MulConsts); in visitFMUL()
14935 SDValue MulConsts = DAG.getNode(ISD::FMUL, DL, VT, Two, N1); in visitFMUL()
14936 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), MulConsts); in visitFMUL()
14942 return DAG.getNode(ISD::FADD, DL, VT, N0, N0); in visitFMUL()
14947 return DAG.getNode(ISD::FSUB, DL, VT, in visitFMUL()
14964 return DAG.getNode(ISD::FMUL, DL, VT, NegN0, NegN1); in visitFMUL()
15002 return DAG.getNode(ISD::FNEG, DL, VT, in visitFMUL()
15003 DAG.getNode(ISD::FABS, DL, VT, X)); in visitFMUL()
15005 return DAG.getNode(ISD::FABS, DL, VT, X); in visitFMUL()
15014 AddToWorklist(Fused.getNode()); in visitFMUL()
15040 return DAG.getNode(ISD::FMA, DL, VT, N0, N1, N2); in visitFMA()
15055 return DAG.getNode(ISD::FMA, DL, VT, NegN0, NegN1, N2); in visitFMA()
15066 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N1, N2); in visitFMA()
15068 return DAG.getNode(ISD::FADD, SDLoc(N), VT, N0, N2); in visitFMA()
15073 return DAG.getNode(ISD::FMA, SDLoc(N), VT, N1, N0, N2); in visitFMA()
15080 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFMA()
15081 DAG.getNode(ISD::FADD, DL, VT, N1, N2.getOperand(1))); in visitFMA()
15088 return DAG.getNode(ISD::FMA, DL, VT, N0.getOperand(0), in visitFMA()
15089 DAG.getNode(ISD::FMUL, DL, VT, N1, N0.getOperand(1)), in visitFMA()
15097 return DAG.getNode(ISD::FADD, DL, VT, N0, N2); in visitFMA()
15101 SDValue RHSNeg = DAG.getNode(ISD::FNEG, DL, VT, N0); in visitFMA()
15102 AddToWorklist(RHSNeg.getNode()); in visitFMA()
15103 return DAG.getNode(ISD::FADD, DL, VT, N2, RHSNeg); in visitFMA()
15111 return DAG.getNode(ISD::FMA, DL, VT, N0.getOperand(0), in visitFMA()
15112 DAG.getNode(ISD::FNEG, DL, VT, N1), N2); in visitFMA()
15119 return DAG.getNode( in visitFMA()
15121 DAG.getNode(ISD::FADD, DL, VT, N1, DAG.getConstantFP(1.0, DL, VT))); in visitFMA()
15126 return DAG.getNode( in visitFMA()
15128 DAG.getNode(ISD::FADD, DL, VT, N1, DAG.getConstantFP(-1.0, DL, VT))); in visitFMA()
15137 return DAG.getNode(ISD::FNEG, DL, VT, Neg); in visitFMA()
15203 SDValue Reciprocal = DAG.getNode(ISD::FDIV, DL, VT, FPOne, N1, Flags); in combineRepeatedFPDivisors()
15209 SDValue NewNode = DAG.getNode(ISD::FMUL, SDLoc(U), VT, Dividend, in combineRepeatedFPDivisors()
15212 } else if (U != Reciprocal.getNode()) { in combineRepeatedFPDivisors()
15264 return DAG.getNode(ISD::FMUL, DL, VT, N0, in visitFDIV()
15272 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
15277 RV = DAG.getNode(ISD::FP_EXTEND, SDLoc(N1), VT, RV); in visitFDIV()
15278 AddToWorklist(RV.getNode()); in visitFDIV()
15279 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
15285 RV = DAG.getNode(ISD::FP_ROUND, SDLoc(N1), VT, RV, N1.getOperand(1)); in visitFDIV()
15286 AddToWorklist(RV.getNode()); in visitFDIV()
15287 return DAG.getNode(ISD::FMUL, DL, VT, N0, RV); in visitFDIV()
15300 if (Sqrt.getNode()) { in visitFDIV()
15313 SDValue AA = DAG.getNode(ISD::FMUL, DL, VT, A, A); in visitFDIV()
15315 DAG.getNode(ISD::FMUL, DL, VT, AA, Sqrt.getOperand(0)); in visitFDIV()
15317 return DAG.getNode(ISD::FMUL, DL, VT, N0, Rsqrt); in visitFDIV()
15320 recursivelyDeleteUnusedNodes(AAZ.getNode()); in visitFDIV()
15327 SDValue Div = DAG.getNode(ISD::FDIV, SDLoc(N1), VT, Rsqrt, Y); in visitFDIV()
15328 AddToWorklist(Div.getNode()); in visitFDIV()
15329 return DAG.getNode(ISD::FMUL, DL, VT, N0, Div); in visitFDIV()
15358 return DAG.getNode(ISD::FDIV, SDLoc(N), VT, NegN0, NegN1); in visitFDIV()
15450 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
15453 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, in visitFCOPYSIGN()
15454 DAG.getNode(ISD::FABS, SDLoc(N0), VT, N0)); in visitFCOPYSIGN()
15463 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0.getOperand(0), N1); in visitFCOPYSIGN()
15467 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFCOPYSIGN()
15471 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1.getOperand(1)); in visitFCOPYSIGN()
15476 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, N0, N1.getOperand(0)); in visitFCOPYSIGN()
15512 return DAG.getNode(ISD::FCBRT, SDLoc(N), VT, N->getOperand(0)); in visitFPOW()
15547 SDValue Sqrt = DAG.getNode(ISD::FSQRT, DL, VT, N->getOperand(0)); in visitFPOW()
15548 SDValue SqrtSqrt = DAG.getNode(ISD::FSQRT, DL, VT, Sqrt); in visitFPOW()
15552 return DAG.getNode(ISD::FMUL, DL, VT, Sqrt, SqrtSqrt); in visitFPOW()
15576 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0.getOperand(0)); in foldFPToIntToFP()
15580 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0.getOperand(0)); in foldFPToIntToFP()
15599 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
15607 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitSINT_TO_FP()
15651 return DAG.getNode(ISD::UINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
15659 return DAG.getNode(ISD::SINT_TO_FP, SDLoc(N), VT, N0); in visitUINT_TO_FP()
15709 return DAG.getNode(ExtOp, SDLoc(N), VT, Src); in FoldIntToFPToInt()
15712 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, Src); in FoldIntToFPToInt()
15728 return DAG.getNode(ISD::FP_TO_SINT, SDLoc(N), VT, N0); in visitFP_TO_SINT()
15743 return DAG.getNode(ISD::FP_TO_UINT, SDLoc(N), VT, N0); in visitFP_TO_UINT()
15756 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, N0, N1); in visitFP_ROUND()
15784 return DAG.getNode(ISD::FP_ROUND, DL, VT, N0.getOperand(0), in visitFP_ROUND()
15791 SDValue Tmp = DAG.getNode(ISD::FP_ROUND, SDLoc(N0), VT, in visitFP_ROUND()
15793 AddToWorklist(Tmp.getNode()); in visitFP_ROUND()
15794 return DAG.getNode(ISD::FCOPYSIGN, SDLoc(N), VT, in visitFP_ROUND()
15815 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, N0); in visitFP_EXTEND()
15820 return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), VT, N0.getOperand(0)); in visitFP_EXTEND()
15829 return DAG.getNode(ISD::FP_ROUND, SDLoc(N), VT, in visitFP_EXTEND()
15831 return DAG.getNode(ISD::FP_EXTEND, SDLoc(N), VT, In); in visitFP_EXTEND()
15835 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in visitFP_EXTEND()
15843 CombineTo(N0.getNode(), in visitFP_EXTEND()
15844 DAG.getNode(ISD::FP_ROUND, SDLoc(N0), in visitFP_EXTEND()
15863 return DAG.getNode(ISD::FCEIL, SDLoc(N), VT, N0); in visitFCEIL()
15874 return DAG.getNode(ISD::FTRUNC, SDLoc(N), VT, N0); in visitFTRUNC()
15898 return DAG.getNode(ISD::FFLOOR, SDLoc(N), VT, N0); in visitFFLOOR()
15910 return DAG.getNode(ISD::FNEG, SDLoc(N), VT, N0); in visitFNEG()
15923 return DAG.getNode(ISD::FSUB, SDLoc(N), VT, N0.getOperand(1), in visitFNEG()
15950 return DAG.getNode(N->getOpcode(), SDLoc(N), VT, N1, N0); in visitFMinMax()
15990 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0); in visitFABS()
15999 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0)); in visitFABS()
16015 return DAG.getNode(ISD::BRCOND, SDLoc(N), MVT::Other, Chain, in visitBRCOND()
16030 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBRCOND()
16040 return DAG.getNode(ISD::BRCOND, SDLoc(N), MVT::Other, in visitBRCOND()
16103 SDValue Tmp = visitXOR(N.getNode()); in rebuildSetCC()
16105 if (!Tmp.getNode()) in rebuildSetCC()
16109 if (Tmp.getNode() == N.getNode()) in rebuildSetCC()
16160 if (Simp.getNode()) AddToWorklist(Simp.getNode()); in visitBR_CC()
16163 if (Simp.getNode() && Simp.getOpcode() == ISD::SETCC) in visitBR_CC()
16164 return DAG.getNode(ISD::BR_CC, SDLoc(N), MVT::Other, in visitBR_CC()
16280 if (Val == Ptr || Ptr->isPredecessorOf(Val.getNode())) in CombineToPreIndexedLoadStore()
16300 if (Use.getUser() == Ptr.getNode() || Use != BasePtr) in CombineToPreIndexedLoadStore()
16341 if (!canFoldInAddressingMode(Ptr.getNode(), Use, DAG, TLI)) in CombineToPreIndexedLoadStore()
16384 if (OtherUses[i]->getOperand(OffsetIdx).getNode() == BasePtr.getNode()) in CombineToPreIndexedLoadStore()
16386 assert(OtherUses[i]->getOperand(!OffsetIdx).getNode() == in CombineToPreIndexedLoadStore()
16387 BasePtr.getNode() && "Expected BasePtr operand"); in CombineToPreIndexedLoadStore()
16421 SDValue NewUse = DAG.getNode(Opcode, in CombineToPreIndexedLoadStore()
16430 deleteAndRecombine(Ptr.getNode()); in CombineToPreIndexedLoadStore()
16431 AddToWorklist(Result.getNode()); in CombineToPreIndexedLoadStore()
16457 if (Use == Ptr.getNode()) in shouldCombineToPostInc()
16511 Visited.insert(Ptr.getNode()); in getPostIndexedLoadStoreOp()
16594 return DAG.getNode(Opc, SDLoc(LD), BP.getSimpleValueType(), BP, Inc); in SplitIndexingFromLoad()
16611 Val = DAG.getNode(ISD::FTRUNC, SDLoc(ST), STMemType, Val); in getTruncatedStoreValue()
16616 Val = DAG.getNode(ISD::TRUNCATE, SDLoc(ST), STMemType, Val); in getTruncatedStoreValue()
16639 Val = DAG.getNode(ISD::ANY_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
16642 Val = DAG.getNode(ISD::SIGN_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
16645 Val = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(LD), LDType, Val); in extendLoadedValueToExtension()
16656 StoreSDNode *ST = dyn_cast<StoreSDNode>(Chain.getNode()); in ForwardStoreValueToDirectLoad()
16740 auto Val = DAG.getNode(ISD::AND, SDLoc(LD), LDType, ST->getValue(), Mask); in ForwardStoreValueToDirectLoad()
16760 Val = DAG.getNode(ISD::TRUNCATE, SDLoc(LD), LDMemType, Val); in ForwardStoreValueToDirectLoad()
16771 deleteAndRecombine(Val.getNode()); in ForwardStoreValueToDirectLoad()
16799 AddUsersToWorklist(Chain.getNode()); in visitLOAD()
16853 assert(NewLoad.getNode() == N); in visitLOAD()
16879 SDValue Token = DAG.getNode(ISD::TokenFactor, SDLoc(N), in visitLOAD()
17137 BaseAddr = DAG->getNode(ISD::ADD, DL, ArithType, BaseAddr, in loadSlice()
17154 DAG->getNode(ISD::ZERO_EXTEND, SDLoc(LastInst), FinalType, LastInst); in loadSlice()
17442 SDValue Chain = DAG.getNode(ISD::TokenFactor, SDLoc(LD), MVT::Other, in SliceUpLoad()
17445 AddToWorklist(Chain.getNode()); in SliceUpLoad()
17459 !ISD::isNormalLoad(V->getOperand(0).getNode())) in CheckForMaskedLoad()
17504 if (LD == Chain.getNode()) in CheckForMaskedLoad()
17509 if (!LD->isOperandOf(Chain.getNode())) in CheckForMaskedLoad()
17560 IVal = DAG.getNode(ISD::SRL, DL, IVal.getValueType(), IVal, in ShrinkLoadReplaceStoreWithStore()
17585 IVal = DAG.getNode(ISD::TRUNCATE, SDLoc(IVal), VT, IVal); in ShrinkLoadReplaceStoreWithStore()
17644 if (ISD::isNormalLoad(N0.getNode()) && N0.hasOneUse() && in ReduceLoadOpStoreWidth()
17645 Chain == SDValue(N0.getNode(), 1)) { in ReduceLoadOpStoreWidth()
17706 SDValue NewVal = DAG.getNode(Opc, SDLoc(Value), NewVT, NewLD, in ReduceLoadOpStoreWidth()
17713 AddToWorklist(NewPtr.getNode()); in ReduceLoadOpStoreWidth()
17714 AddToWorklist(NewLD.getNode()); in ReduceLoadOpStoreWidth()
17715 AddToWorklist(NewVal.getNode()); in ReduceLoadOpStoreWidth()
17732 if (ISD::isNormalStore(ST) && ISD::isNormalLoad(Value.getNode()) && in TransformFPLoadStorePair()
17772 AddToWorklist(NewLD.getNode()); in TransformFPLoadStorePair()
17773 AddToWorklist(NewST.getNode()); in TransformFPLoadStorePair()
17813 SDNode *MulVar = AddNode.getOperand(0).getNode(); in isMulAddWithConstProfitable()
17817 OtherOp = Use->getOperand(1).getNode(); in isMulAddWithConstProfitable()
17819 OtherOp = Use->getOperand(0).getNode(); in isMulAddWithConstProfitable()
17849 OtherOp->getOperand(0).getNode() == MulVar) in isMulAddWithConstProfitable()
17870 if (Visited.insert(StoreNodes[i].MemNode->getChain().getNode()).second) in getMergeStoreChains()
17949 StoredVal = DAG.getNode(MemVT.isVector() ? ISD::CONCAT_VECTORS in mergeStoresOfConstantsOrVecElts()
17975 Val = DAG.getNode(OpC, SDLoc(Val), MemVT, Vec, Idx); in mergeStoresOfConstantsOrVecElts()
17982 StoredVal = DAG.getNode(MemVT.isVector() ? ISD::CONCAT_VECTORS in mergeStoresOfConstantsOrVecElts()
18051 AddToWorklist(NewChain.getNode()); in mergeStoresOfConstantsOrVecElts()
18062 if (!BasePtr.getBase().getNode() || BasePtr.getBase().isUndef()) in getStoreMergeCandidates()
18188 RootNode = St->getChain().getNode(); in getStoreMergeCandidates()
18193 RootNode = Ldn->getChain().getNode(); in getStoreMergeCandidates()
18237 Worklist.push_back(Op.getNode()); in checkMergeStoreCandidatesForDependencies()
18263 Worklist.push_back(N->getOperand(j).getNode()); in checkMergeStoreCandidatesForDependencies()
18548 if (LdBasePtr.getBase().getNode()) { in tryStoreMergeOfLoads()
18737 AddToWorklist(NewStoreChain.getNode()); in tryStoreMergeOfLoads()
18762 StoreOp = DAG.getNode(ISD::ROTL, LoadDL, JointMemOpVT, NewLoad, RotAmt); in tryStoreMergeOfLoads()
18784 SDValue(NewLoad.getNode(), 1)); in tryStoreMergeOfLoads()
18793 recursivelyDeleteUnusedNodes(Val.getNode()); in tryStoreMergeOfLoads()
18907 SDValue Token = DAG.getNode(ISD::TokenFactor, SL, in replaceStoreChain()
18911 AddToWorklist(Token.getNode()); in replaceStoreChain()
18987 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, in replaceStoreOfFPConstant()
19035 assert(NewStore.getNode() == N); in visitSTORE()
19082 AddToWorklist(Value.getNode()); in visitSTORE()
19221 if (!mayAlias(Chain.getNode(), N)) in visitLIFETIME_END()
19342 Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Lo.getOperand(0)); in splitMergedValStore()
19343 Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, Hi.getOperand(0)); in splitMergedValStore()
19372 ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Vec.getNode()); in combineInsertEltToShuffle()
19486 SDValue PaddedSubV = DAG.getNode(ISD::CONCAT_VECTORS, DL, ShufVT, ConcatOps); in combineInsertEltToShuffle()
19491 AddToWorklist(PaddedSubV.getNode()); in combineInsertEltToShuffle()
19492 AddToWorklist(DestVecBC.getNode()); in combineInsertEltToShuffle()
19493 AddToWorklist(Shuf.getNode()); in combineInsertEltToShuffle()
19562 SDValue NewOp = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, in visitINSERT_VECTOR_ELT()
19564 AddToWorklist(NewOp.getNode()); in visitINSERT_VECTOR_ELT()
19565 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(InVec.getNode()), in visitINSERT_VECTOR_ELT()
19714 Load = DAG.getNode(ISD::TRUNCATE, DL, ResultVT, Load); in scalarizeExtractedVectorLoad()
19745 ISD::isConstantSplatVector(Op0.getNode(), SplatVal) || in scalarizeExtractedBinop()
19747 ISD::isConstantSplatVector(Op1.getNode(), SplatVal)) { in scalarizeExtractedBinop()
19752 SDValue Ext0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Op0, Index); in scalarizeExtractedBinop()
19753 SDValue Ext1 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VT, Op1, Index); in scalarizeExtractedBinop()
19754 return DAG.getNode(Vec.getOpcode(), DL, VT, Ext0, Ext1); in scalarizeExtractedBinop()
19792 return DAG.getNode(ISD::TRUNCATE, DL, ScalarVT, InOp); in visitEXTRACT_VECTOR_ELT()
19848 return DAG.getNode(ISD::TRUNCATE, DL, ScalarVT, BCSrc); in visitEXTRACT_VECTOR_ELT()
19913 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ScalarVT, SVInVec, in visitEXTRACT_VECTOR_ELT()
19973 ISD::isNormalLoad(VecOp.getNode()) && in visitEXTRACT_VECTOR_ELT()
19974 !Index->hasPredecessor(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
19990 if (ISD::isNormalLoad(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
19994 ISD::isNormalLoad(VecOp.getOperand(0).getNode())) { in visitEXTRACT_VECTOR_ELT()
20026 if (ISD::isNormalLoad(VecOp.getNode())) { in visitEXTRACT_VECTOR_ELT()
20051 SDValue Elt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, in visitEXTRACT_VECTOR_ELT()
20054 return DAG.getNode(ISD::BITCAST, SL, ScalarVT, Elt); in visitEXTRACT_VECTOR_ELT()
20182 AddToWorklist(BV.getNode()); in reduceBuildVecExtToExtBuildVec()
20273 EVT InVT2 = VecIn2.getNode() ? VecIn2.getValueType() : InVT1; in createBuildVecShuffle()
20300 VecIn1 = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in createBuildVecShuffle()
20306 if (!VecIn2.getNode()) { in createBuildVecShuffle()
20309 VecIn2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, VecIn1, in createBuildVecShuffle()
20311 VecIn1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, VecIn1, ZeroIdx); in createBuildVecShuffle()
20333 VecIn2 = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, InVT1, in createBuildVecShuffle()
20341 VecIn2 = DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in createBuildVecShuffle()
20374 VecIn2 = VecIn2.getNode() ? VecIn2 : DAG.getUNDEF(InVT1); in createBuildVecShuffle()
20379 Shuffle = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, VT, Shuffle, ZeroIdx); in createBuildVecShuffle()
20580 SDValue VecIn2 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SplitVT, Vec, in reduceBuildVecToShuffle()
20582 SDValue VecIn1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, SplitVT, Vec, in reduceBuildVecToShuffle()
20697 LMask = cast<ShuffleVectorSDNode>(L.getNode())->getMask(); in reduceBuildVecToShuffle()
20706 RMask = cast<ShuffleVectorSDNode>(R.getNode())->getMask(); in reduceBuildVecToShuffle()
20776 In = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, InVT, In, in convertBuildVecZextToZext()
20778 return DAG.getNode(FoundZeroExtend ? ISD::ZERO_EXTEND : ISD::ANY_EXTEND, DL, in convertBuildVecZextToZext()
20807 SDValue Concat = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), in visitBUILD_VECTOR()
20840 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), N->getValueType(0), in visitBUILD_VECTOR()
20861 return DAG.getNode(ISD::SPLAT_VECTOR, SDLoc(N), VT, V); in visitBUILD_VECTOR()
20880 SDValue ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT); in combineConcatVectorOfScalars()
20910 ScalarUndef = DAG.getNode(ISD::UNDEF, DL, SVT); in combineConcatVectorOfScalars()
20963 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, ConcatOps); in combineConcatVectorOfConcatVectors()
21103 SDValue NewConcat = DAG.getNode(ISD::CONCAT_VECTORS, DL, ConcatSrcVT, SrcOps); in combineConcatVectorOfCasts()
21104 return DAG.getNode(CastOpcode, DL, VT, NewConcat); in combineConcatVectorOfCasts()
21129 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in visitCONCAT_VECTORS()
21170 SDValue Res = DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), NVT, Scalar); in visitCONCAT_VECTORS()
21214 DAG.getNode(ISD::TRUNCATE, SDLoc(N), MinVT, Op.getOperand(i))); in visitCONCAT_VECTORS()
21263 if (SingleSource.getNode()) { in visitCONCAT_VECTORS()
21282 if (SingleSource.getNode()) in visitCONCAT_VECTORS()
21336 return DAG.getNode(BinOpcode, SDLoc(Extract), SubVT, Sub0, Sub1, in narrowInsertExtractVectorBinOp()
21415 SDValue X = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
21417 SDValue Y = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
21420 DAG.getNode(BOpcode, DL, NarrowBVT, X, Y, BinOp->getFlags()); in narrowExtractedVectorBinOp()
21456 : DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
21460 : DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowBVT, in narrowExtractedVectorBinOp()
21463 SDValue NarrowBinOp = DAG.getNode(BOpcode, DL, NarrowBVT, X, Y); in narrowExtractedVectorBinOp()
21664 NewOps.emplace_back(DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NarrowVT, in foldExtractSubvectorFromShuffleVector()
21696 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), NVT, V.getOperand(0), in visitEXTRACT_SUBVECTOR()
21724 SDValue NewExtract = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewExtVT, in visitEXTRACT_SUBVECTOR()
21743 DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NewExtVT, in visitEXTRACT_SUBVECTOR()
21751 DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ScalarVT, in visitEXTRACT_SUBVECTOR()
21791 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, NVT, in visitEXTRACT_SUBVECTOR()
21823 Src = DAG.getNode(ISD::TRUNCATE, SDLoc(N), InVT, Src); in visitEXTRACT_SUBVECTOR()
21855 return DAG.getNode( in visitEXTRACT_SUBVECTOR()
21917 return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, Shuf0, Shuf1); in foldShuffleOfConcatUndefs()
21948 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, N0, N1); in partitionShuffleOfConcats()
21982 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in partitionShuffleOfConcats()
22020 if (N0AnyConst && !N1AnyConst && !ISD::isBuildVectorAllZeros(N0.getNode())) in combineShuffleOfScalars()
22022 if (!N0AnyConst && N1AnyConst && !ISD::isBuildVectorAllZeros(N1.getNode())) in combineShuffleOfScalars()
22128 DAG.getNode(ISD::ANY_EXTEND_VECTOR_INREG, in combineShuffleToVectorExtend()
22429 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(Shuf), Op0.getValueType(), in replaceShuffleOfInsert()
22523 SDValue ExtL = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, L, Index); in visitVECTOR_SHUFFLE()
22524 SDValue ExtR = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, R, Index); in visitVECTOR_SHUFFLE()
22526 DAG.getNode(N0.getOpcode(), DL, EltVT, ExtL, ExtR, N0->getFlags()); in visitVECTOR_SHUFFLE()
22527 SDValue Insert = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, NewBO); in visitVECTOR_SHUFFLE()
22548 SDNode *V = N0.getNode(); in visitVECTOR_SHUFFLE()
22553 V = ConvInput.getNode(); in visitVECTOR_SHUFFLE()
22568 if (!Base.getNode()) in visitVECTOR_SHUFFLE()
22637 SDValue NewCat = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, in visitVECTOR_SHUFFLE()
22688 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, LHS, in visitVECTOR_SHUFFLE()
22758 VT, DAG.getNode(ISD::AND, DL, IntVT, DAG.getBitcast(IntVT, N0), in visitVECTOR_SHUFFLE()
22884 if (!SV0.getNode() || SV0 == CurrentVec) { in visitVECTOR_SHUFFLE()
22891 if (!SV1.getNode() || SV1 == CurrentVec) { in visitVECTOR_SHUFFLE()
22986 N->isOnlyUserOf(N->getOperand(i).getNode())) { in visitVECTOR_SHUFFLE()
23013 if (TLI.isBinOp(SrcOpcode) && N->isOnlyUserOf(N0.getNode()) && in visitVECTOR_SHUFFLE()
23015 (SrcOpcode == N1.getOpcode() && N->isOnlyUserOf(N1.getNode())))) { in visitVECTOR_SHUFFLE()
23080 return DAG.getNode(SrcOpcode, DL, VT, LHS, RHS); in visitVECTOR_SHUFFLE()
23114 DAG.getNode(ISD::TRUNCATE, SDLoc(InVal), VT.getScalarType(), InVal); in visitSCALAR_TO_VECTOR()
23115 return DAG.getNode(ISD::SCALAR_TO_VECTOR, SDLoc(N), VT, Val); in visitSCALAR_TO_VECTOR()
23133 return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(N), SubVT, in visitSCALAR_TO_VECTOR()
23164 return DAG.getNode(ISD::SPLAT_VECTOR, SDLoc(N), VT, N1.getOperand(0)); in visitINSERT_SUBVECTOR()
23192 SDValue NewINSERT = DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), in visitINSERT_SUBVECTOR()
23204 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, N0.getOperand(0), in visitINSERT_SUBVECTOR()
23212 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, N0, in visitINSERT_SUBVECTOR()
23246 Res = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, NewVT, Res, N1Src, NewIdx); in visitINSERT_SUBVECTOR()
23261 SDValue NewOp = DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, in visitINSERT_SUBVECTOR()
23263 AddToWorklist(NewOp.getNode()); in visitINSERT_SUBVECTOR()
23264 return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N0.getNode()), in visitINSERT_SUBVECTOR()
23278 return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT, Ops); in visitINSERT_SUBVECTOR()
23305 return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), N->getValueType(0), in visitFP16_TO_FP()
23332 DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT.getVectorElementType(), N0, in visitVECREDUCE()
23335 Res = DAG.getNode(ISD::ANY_EXTEND, dl, N->getValueType(0), Res); in visitVECREDUCE()
23347 return DAG.getNode(NewOpcode, SDLoc(N), N->getValueType(0), N0); in visitVECREDUCE()
23360 return DAG.getNode(Opcode, SDLoc(N), N->getValueType(0), Subvec); in visitVECREDUCE()
23375 ISD::isConstantSplatVectorAllZeros(N->getOperand(*MaskIdx).getNode()); in visitVPOp()
23518 SDValue X = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, Src0, IndexC); in scalarizeBinOpOfSplats()
23519 SDValue Y = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, EltVT, Src1, IndexC); in scalarizeBinOpOfSplats()
23520 SDValue ScalarBO = DAG.getNode(Opcode, DL, EltVT, X, Y, N->getFlags()); in scalarizeBinOpOfSplats()
23566 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, LHS.getOperand(0), in SimplifyVBinOp()
23583 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, X, RHS, Flags); in SimplifyVBinOp()
23592 SDValue NewBinOp = DAG.getNode(Opcode, DL, VT, LHS, X, Flags); in SimplifyVBinOp()
23615 DAG.getNode(Opcode, DL, VT, DAG.getUNDEF(VT), DAG.getUNDEF(VT)); in SimplifyVBinOp()
23616 SDValue NarrowBO = DAG.getNode(Opcode, DL, NarrowVT, X, Y); in SimplifyVBinOp()
23617 return DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VT, VecC, NarrowBO, Z); in SimplifyVBinOp()
23626 ISD::isBuildVectorOfConstantSDNodes(Op.getNode()); in SimplifyVBinOp()
23644 ConcatOps.push_back(DAG.getNode(Opcode, DL, NarrowVT, LHS.getOperand(i), in SimplifyVBinOp()
23648 return DAG.getNode(ISD::CONCAT_VECTORS, DL, VT, ConcatOps); in SimplifyVBinOp()
23668 if (SCC.getNode()) { in SimplifySelect()
23673 SDValue SETCC = DAG.getNode(ISD::SETCC, SDLoc(N0), in SimplifySelect()
23677 AddToWorklist(SETCC.getNode()); in SimplifySelect()
23805 SDNode *CondNode = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
23825 SDNode *CondLHS = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
23826 SDNode *CondRHS = TheSelect->getOperand(1).getNode(); in SimplifySelectOps()
23836 Addr = DAG.getNode(ISD::SELECT_CC, SDLoc(TheSelect), in SimplifySelectOps()
23873 CombineTo(LHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
23874 CombineTo(RHS.getNode(), Load.getValue(0), Load.getValue(1)); in SimplifySelectOps()
23915 auto *N2C = dyn_cast<ConstantSDNode>(N2.getNode()); in foldSelectCCToShiftAnd()
23920 SDValue Shift = DAG.getNode(ISD::SRL, DL, XType, N0, ShiftAmt); in foldSelectCCToShiftAnd()
23921 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
23924 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in foldSelectCCToShiftAnd()
23925 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
23931 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in foldSelectCCToShiftAnd()
23940 SDValue Shift = DAG.getNode(ISD::SRA, DL, XType, N0, ShiftAmt); in foldSelectCCToShiftAnd()
23941 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
23944 Shift = DAG.getNode(ISD::TRUNCATE, DL, AType, Shift); in foldSelectCCToShiftAnd()
23945 AddToWorklist(Shift.getNode()); in foldSelectCCToShiftAnd()
23951 return DAG.getNode(ISD::AND, DL, AType, Shift, N2); in foldSelectCCToShiftAnd()
23982 SDValue NewBinOp = DAG.getNode(BinOpc, DL, OpVTs, NewSel, N1.getOperand(1)); in foldSelectOfBinops()
23996 SDValue NewBinOp = DAG.getNode(BinOpc, DL, OpVTs, N1.getOperand(0), NewSel); in foldSelectOfBinops()
24040 Int = DAG.getNode(IsFabs ? ISD::AND : ISD::XOR, DL, IntVT, Int, in foldSignChangeInBitcast()
24042 AddToWorklist(Int.getNode()); in foldSignChangeInBitcast()
24093 AddToWorklist(Cond.getNode()); in convertSelectOfFPConstantsToLoadOffset()
24095 AddToWorklist(CstOffset.getNode()); in convertSelectOfFPConstantsToLoadOffset()
24096 CPIdx = DAG.getNode(ISD::ADD, DL, CPIdx.getValueType(), CPIdx, CstOffset); in convertSelectOfFPConstantsToLoadOffset()
24097 AddToWorklist(CPIdx.getNode()); in convertSelectOfFPConstantsToLoadOffset()
24114 auto *N1C = dyn_cast<ConstantSDNode>(N1.getNode()); in SimplifySelectCC()
24115 auto *N2C = dyn_cast<ConstantSDNode>(N2.getNode()); in SimplifySelectCC()
24116 auto *N3C = dyn_cast<ConstantSDNode>(N3.getNode()); in SimplifySelectCC()
24120 AddToWorklist(SCC.getNode()); in SimplifySelectCC()
24153 SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N0), VT, AndLHS, ShlAmt); in SimplifySelectCC()
24160 SDValue Shr = DAG.getNode(ISD::SRA, SDLoc(N0), VT, Shl, ShrAmt); in SimplifySelectCC()
24162 return DAG.getNode(ISD::AND, DL, VT, Shr, N3); in SimplifySelectCC()
24193 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), VT, SCC); in SimplifySelectCC()
24196 Temp = DAG.getNode(ISD::ZERO_EXTEND, SDLoc(N2), VT, SCC); in SimplifySelectCC()
24199 AddToWorklist(SCC.getNode()); in SimplifySelectCC()
24200 AddToWorklist(Temp.getNode()); in SimplifySelectCC()
24210 return DAG.getNode(ISD::SHL, DL, N2.getValueType(), Temp, in SimplifySelectCC()
24238 return DAG.getNode(ISD::CTTZ, DL, VT, N0); in SimplifySelectCC()
24245 return DAG.getNode(ISD::CTLZ, DL, VT, N0); in SimplifySelectCC()
24257 SDValue ASR = DAG.getNode( in SimplifySelectCC()
24260 return DAG.getNode(ISD::XOR, DL, VT, DAG.getSExtOrTrunc(ASR, DL, VT), in SimplifySelectCC()
24367 SDValue Ctlz = DAG.getNode(ISD::CTLZ, DL, VT, V); in BuildLogBase2()
24369 SDValue LogBase2 = DAG.getNode(ISD::SUB, DL, VT, Base, Ctlz); in BuildLogBase2()
24402 AddToWorklist(Est.getNode()); in BuildDivEstimate()
24414 MulEst = DAG.getNode(ISD::FMUL, DL, VT, N, Est, Flags); in BuildDivEstimate()
24415 AddToWorklist(MulEst.getNode()); in BuildDivEstimate()
24418 SDValue NewEst = DAG.getNode(ISD::FMUL, DL, VT, Op, MulEst, Flags); in BuildDivEstimate()
24419 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
24421 NewEst = DAG.getNode(ISD::FSUB, DL, VT, in BuildDivEstimate()
24423 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
24425 NewEst = DAG.getNode(ISD::FMUL, DL, VT, Est, NewEst, Flags); in BuildDivEstimate()
24426 AddToWorklist(NewEst.getNode()); in BuildDivEstimate()
24428 Est = DAG.getNode(ISD::FADD, DL, VT, MulEst, NewEst, Flags); in BuildDivEstimate()
24429 AddToWorklist(Est.getNode()); in BuildDivEstimate()
24433 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, N, Flags); in BuildDivEstimate()
24434 AddToWorklist(Est.getNode()); in BuildDivEstimate()
24458 SDValue HalfArg = DAG.getNode(ISD::FMUL, DL, VT, ThreeHalves, Arg, Flags); in buildSqrtNROneConst()
24459 HalfArg = DAG.getNode(ISD::FSUB, DL, VT, HalfArg, Arg, Flags); in buildSqrtNROneConst()
24463 SDValue NewEst = DAG.getNode(ISD::FMUL, DL, VT, Est, Est, Flags); in buildSqrtNROneConst()
24464 NewEst = DAG.getNode(ISD::FMUL, DL, VT, HalfArg, NewEst, Flags); in buildSqrtNROneConst()
24465 NewEst = DAG.getNode(ISD::FSUB, DL, VT, ThreeHalves, NewEst, Flags); in buildSqrtNROneConst()
24466 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, NewEst, Flags); in buildSqrtNROneConst()
24471 Est = DAG.getNode(ISD::FMUL, DL, VT, Est, Arg, Flags); in buildSqrtNROneConst()
24496 SDValue AE = DAG.getNode(ISD::FMUL, DL, VT, Arg, Est, Flags); in buildSqrtNRTwoConst()
24497 SDValue AEE = DAG.getNode(ISD::FMUL, DL, VT, AE, Est, Flags); in buildSqrtNRTwoConst()
24498 SDValue RHS = DAG.getNode(ISD::FADD, DL, VT, AEE, MinusThree, Flags); in buildSqrtNRTwoConst()
24506 LHS = DAG.getNode(ISD::FMUL, DL, VT, Est, MinusHalf, Flags); in buildSqrtNRTwoConst()
24509 LHS = DAG.getNode(ISD::FMUL, DL, VT, AE, MinusHalf, Flags); in buildSqrtNRTwoConst()
24512 Est = DAG.getNode(ISD::FMUL, DL, VT, LHS, RHS, Flags); in buildSqrtNRTwoConst()
24546 AddToWorklist(Est.getNode()); in buildSqrtEstimateImpl()
24560 Est = DAG.getNode( in buildSqrtEstimateImpl()
24622 if (MUC0.BasePtr.getNode() && MUC0.BasePtr == MUC1.BasePtr && in mayAlias()
24737 bool IsOpLoad = isa<LoadSDNode>(C.getNode()) && in GatherAllAliases()
24738 cast<LSBaseSDNode>(C.getNode())->isSimple(); in GatherAllAliases()
24739 if ((IsLoad && IsOpLoad) || !mayAlias(N, C.getNode())) { in GatherAllAliases()
24757 if (!mayAlias(N, C.getNode())) { in GatherAllAliases()
24776 if (!Visited.insert(Chain.getNode()).second) in GatherAllAliases()
24808 if (Chain.getNode()) in GatherAllAliases()
24879 if (!BasePtr.getBase().getNode()) in parallelizeChainedStores()
24976 AddToWorklist(TF.getNode()); in parallelizeChainedStores()
24978 AddToWorklist(Op.getNode()); in parallelizeChainedStores()
24990 if (!BasePtr.getBase().getNode()) in findBetterNeighborChains()