Lines Matching refs:getOperand
565 if (char V = isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI, in isNegatibleForFree()
569 return isNegatibleForFree(Op.getOperand(1), LegalOperations, TLI, Options, in isNegatibleForFree()
583 if (char V = isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI, in isNegatibleForFree()
587 return isNegatibleForFree(Op.getOperand(1), LegalOperations, TLI, Options, in isNegatibleForFree()
593 return isNegatibleForFree(Op.getOperand(0), LegalOperations, TLI, Options, in isNegatibleForFree()
603 if (Op.getOpcode() == ISD::FNEG) return Op.getOperand(0); in GetNegatedExpression()
621 if (isNegatibleForFree(Op.getOperand(0), LegalOperations, in GetNegatedExpression()
624 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
626 Op.getOperand(1)); in GetNegatedExpression()
629 GetNegatedExpression(Op.getOperand(1), DAG, in GetNegatedExpression()
631 Op.getOperand(0)); in GetNegatedExpression()
637 if (ConstantFPSDNode *N0CFP = dyn_cast<ConstantFPSDNode>(Op.getOperand(0))) in GetNegatedExpression()
639 return Op.getOperand(1); in GetNegatedExpression()
643 Op.getOperand(1), Op.getOperand(0)); in GetNegatedExpression()
650 if (isNegatibleForFree(Op.getOperand(0), LegalOperations, in GetNegatedExpression()
653 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
655 Op.getOperand(1)); in GetNegatedExpression()
659 Op.getOperand(0), in GetNegatedExpression()
660 GetNegatedExpression(Op.getOperand(1), DAG, in GetNegatedExpression()
666 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
670 GetNegatedExpression(Op.getOperand(0), DAG, in GetNegatedExpression()
672 Op.getOperand(1)); in GetNegatedExpression()
684 LHS = N.getOperand(0); in isSetCCEquivalent()
685 RHS = N.getOperand(1); in isSetCCEquivalent()
686 CC = N.getOperand(2); in isSetCCEquivalent()
691 !TLI.isConstTrueVal(N.getOperand(2).getNode()) || in isSetCCEquivalent()
692 !TLI.isConstFalseVal(N.getOperand(3).getNode())) in isSetCCEquivalent()
699 LHS = N.getOperand(0); in isSetCCEquivalent()
700 RHS = N.getOperand(1); in isSetCCEquivalent()
701 CC = N.getOperand(4); in isSetCCEquivalent()
793 if (SDNode *L = isConstantIntBuildVectorOrConstantInt(N0.getOperand(1))) { in ReassociateOps()
797 return DAG.getNode(Opc, DL, VT, N0.getOperand(0), OpNode); in ReassociateOps()
803 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N0.getOperand(0), N1); in ReassociateOps()
807 return DAG.getNode(Opc, DL, VT, OpNode, N0.getOperand(1)); in ReassociateOps()
813 if (SDNode *R = isConstantIntBuildVectorOrConstantInt(N1.getOperand(1))) { in ReassociateOps()
817 return DAG.getNode(Opc, DL, VT, N1.getOperand(0), OpNode); in ReassociateOps()
823 SDValue OpNode = DAG.getNode(Opc, SDLoc(N0), VT, N1.getOperand(0), N0); in ReassociateOps()
827 return DAG.getNode(Opc, DL, VT, OpNode, N1.getOperand(1)); in ReassociateOps()
947 SExtPromoteOperand(Op.getOperand(0), PVT), in PromoteOperand()
948 Op.getOperand(1)); in PromoteOperand()
951 ZExtPromoteOperand(Op.getOperand(0), PVT), in PromoteOperand()
952 Op.getOperand(1)); in PromoteOperand()
1020 SDValue N0 = Op.getOperand(0); in PromoteIntBinOp()
1026 SDValue N1 = Op.getOperand(1); in PromoteIntBinOp()
1078 SDValue N0 = Op.getOperand(0); in PromoteIntShiftOp()
1080 N0 = SExtPromoteOperand(Op.getOperand(0), PVT); in PromoteIntShiftOp()
1082 N0 = ZExtPromoteOperand(Op.getOperand(0), PVT); in PromoteIntShiftOp()
1090 ReplaceLoadWithPromotedLoad(Op.getOperand(0).getNode(), N0.getNode()); in PromoteIntShiftOp()
1096 DAG.getNode(Opc, dl, PVT, N0, Op.getOperand(1))); in PromoteIntShiftOp()
1125 return DAG.getNode(Op.getOpcode(), SDLoc(Op), VT, Op.getOperand(0)); in PromoteExtend()
1467 SDValue N0 = N->getOperand(0); in combine()
1468 SDValue N1 = N->getOperand(1); in combine()
1492 if (N->getOperand(0).getValueType() == MVT::Other) in getInputChainForNode()
1493 return N->getOperand(0); in getInputChainForNode()
1494 if (N->getOperand(NumOps-1).getValueType() == MVT::Other) in getInputChainForNode()
1495 return N->getOperand(NumOps-1); in getInputChainForNode()
1497 if (N->getOperand(i).getValueType() == MVT::Other) in getInputChainForNode()
1498 return N->getOperand(i); in getInputChainForNode()
1507 if (getInputChainForNode(N->getOperand(0).getNode()) == N->getOperand(1)) in visitTokenFactor()
1508 return N->getOperand(0); in visitTokenFactor()
1509 if (getInputChainForNode(N->getOperand(1).getNode()) == N->getOperand(0)) in visitTokenFactor()
1510 return N->getOperand(1); in visitTokenFactor()
1592 DAG.ReplaceAllUsesOfValueWith(SDValue(N, i), N->getOperand(i)); in visitMERGE_VALUES()
1626 SDValue N0 = N->getOperand(0); in visitADD()
1627 SDValue N1 = N->getOperand(1); in visitADD()
1668 if (ConstantSDNode *N0C = getAsNonOpaqueConstant(N0.getOperand(0))) { in visitADD()
1673 N0.getOperand(1)); in visitADD()
1679 if (N0.getOpcode() == ISD::SUB && isNullConstant(N0.getOperand(0))) in visitADD()
1680 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1, N0.getOperand(1)); in visitADD()
1682 if (N1.getOpcode() == ISD::SUB && isNullConstant(N1.getOperand(0))) in visitADD()
1683 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N0, N1.getOperand(1)); in visitADD()
1685 if (N1.getOpcode() == ISD::SUB && N0 == N1.getOperand(1)) in visitADD()
1686 return N1.getOperand(0); in visitADD()
1688 if (N0.getOpcode() == ISD::SUB && N1 == N0.getOperand(1)) in visitADD()
1689 return N0.getOperand(0); in visitADD()
1691 if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD && in visitADD()
1692 N0 == N1.getOperand(1).getOperand(0)) in visitADD()
1693 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1.getOperand(0), in visitADD()
1694 N1.getOperand(1).getOperand(1)); in visitADD()
1696 if (N1.getOpcode() == ISD::SUB && N1.getOperand(1).getOpcode() == ISD::ADD && in visitADD()
1697 N0 == N1.getOperand(1).getOperand(1)) in visitADD()
1698 return DAG.getNode(ISD::SUB, SDLoc(N), VT, N1.getOperand(0), in visitADD()
1699 N1.getOperand(1).getOperand(0)); in visitADD()
1702 N1.getOperand(0).getOpcode() == ISD::SUB && in visitADD()
1703 N0 == N1.getOperand(0).getOperand(1)) in visitADD()
1705 N1.getOperand(0).getOperand(0), N1.getOperand(1)); in visitADD()
1709 SDValue N00 = N0.getOperand(0); in visitADD()
1710 SDValue N01 = N0.getOperand(1); in visitADD()
1711 SDValue N10 = N1.getOperand(0); in visitADD()
1712 SDValue N11 = N1.getOperand(1); in visitADD()
1742 if (N1.getOpcode() == ISD::SHL && N1.getOperand(0).getOpcode() == ISD::SUB && in visitADD()
1743 isNullConstant(N1.getOperand(0).getOperand(0))) in visitADD()
1746 N1.getOperand(0).getOperand(1), in visitADD()
1747 N1.getOperand(1))); in visitADD()
1748 if (N0.getOpcode() == ISD::SHL && N0.getOperand(0).getOpcode() == ISD::SUB && in visitADD()
1749 isNullConstant(N0.getOperand(0).getOperand(0))) in visitADD()
1752 N0.getOperand(0).getOperand(1), in visitADD()
1753 N0.getOperand(1))); in visitADD()
1756 SDValue AndOp0 = N1.getOperand(0); in visitADD()
1762 if (NumSignBits == DestBits && isOneConstant(N1->getOperand(1))) { in visitADD()
1764 return DAG.getNode(ISD::SUB, DL, VT, N->getOperand(0), AndOp0); in visitADD()
1770 N0.getOperand(0).getValueType() == MVT::i1 && in visitADD()
1773 SDValue ZExt = DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)); in visitADD()
1779 VTSDNode *TN = cast<VTSDNode>(N1.getOperand(1)); in visitADD()
1782 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitADD()
1792 SDValue N0 = N->getOperand(0); in visitADDC()
1793 SDValue N1 = N->getOperand(1); in visitADDC()
1833 SDValue N0 = N->getOperand(0); in visitADDE()
1834 SDValue N1 = N->getOperand(1); in visitADDE()
1835 SDValue CarryIn = N->getOperand(2); in visitADDE()
1864 SDValue N0 = N->getOperand(0); in visitSUB()
1865 SDValue N1 = N->getOperand(1); in visitSUB()
1897 if (N1.getOpcode() == ISD::SUB && N0 == N1.getOperand(0)) in visitSUB()
1898 return N1.getOperand(1); in visitSUB()
1900 if (N0.getOpcode() == ISD::ADD && N0.getOperand(0) == N1) in visitSUB()
1901 return N0.getOperand(1); in visitSUB()
1903 if (N0.getOpcode() == ISD::ADD && N0.getOperand(1) == N1) in visitSUB()
1904 return N0.getOperand(0); in visitSUB()
1907 dyn_cast<ConstantSDNode>(N1.getOperand(1).getNode()); in visitSUB()
1913 N1.getOperand(0)); in visitSUB()
1917 (N0.getOperand(1).getOpcode() == ISD::SUB || in visitSUB()
1918 N0.getOperand(1).getOpcode() == ISD::ADD) && in visitSUB()
1919 N0.getOperand(1).getOperand(0) == N1) in visitSUB()
1920 return DAG.getNode(N0.getOperand(1).getOpcode(), SDLoc(N), VT, in visitSUB()
1921 N0.getOperand(0), N0.getOperand(1).getOperand(1)); in visitSUB()
1924 N0.getOperand(1).getOpcode() == ISD::ADD && in visitSUB()
1925 N0.getOperand(1).getOperand(1) == N1) in visitSUB()
1927 N0.getOperand(0), N0.getOperand(1).getOperand(0)); in visitSUB()
1930 N0.getOperand(1).getOpcode() == ISD::SUB && in visitSUB()
1931 N0.getOperand(1).getOperand(1) == N1) in visitSUB()
1933 N0.getOperand(0), N0.getOperand(1).getOperand(0)); in visitSUB()
1958 VTSDNode *TN = cast<VTSDNode>(N1.getOperand(1)); in visitSUB()
1961 SDValue ZExt = DAG.getNode(ISD::AND, DL, VT, N1.getOperand(0), in visitSUB()
1971 SDValue N0 = N->getOperand(0); in visitSUBC()
1972 SDValue N1 = N->getOperand(1); in visitSUBC()
2004 SDValue N0 = N->getOperand(0); in visitSUBE()
2005 SDValue N1 = N->getOperand(1); in visitSUBE()
2006 SDValue CarryIn = N->getOperand(2); in visitSUBE()
2016 SDValue N0 = N->getOperand(0); in visitMUL()
2017 SDValue N1 = N->getOperand(1); in visitMUL()
2099 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
2100 isa<ConstantSDNode>(N0.getOperand(1)))) { in visitMUL()
2102 N1, N0.getOperand(1)); in visitMUL()
2105 N0.getOperand(0), C3); in visitMUL()
2114 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
2115 isa<ConstantSDNode>(N0.getOperand(1))) && in visitMUL()
2119 isa<ConstantSDNode>(N1.getOperand(1)) && in visitMUL()
2126 Sh.getOperand(0), Y); in visitMUL()
2128 Mul, Sh.getOperand(1)); in visitMUL()
2134 (isConstantSplatVector(N0.getOperand(1).getNode(), Val) || in visitMUL()
2135 isa<ConstantSDNode>(N0.getOperand(1)))) in visitMUL()
2138 N0.getOperand(0), N1), in visitMUL()
2140 N0.getOperand(1), N1)); in visitMUL()
2150 SDValue N0 = N->getOperand(0); in visitSDIV()
2151 SDValue N1 = N->getOperand(1); in visitSDIV()
2248 SDValue N0 = N->getOperand(0); in visitUDIV()
2249 SDValue N1 = N->getOperand(1); in visitUDIV()
2273 if (ConstantSDNode *SHC = getAsNonOpaqueConstant(N1.getOperand(0))) { in visitUDIV()
2275 EVT ADDVT = N1.getOperand(1).getValueType(); in visitUDIV()
2278 N1.getOperand(1), in visitUDIV()
2304 SDValue N0 = N->getOperand(0); in visitSREM()
2305 SDValue N1 = N->getOperand(1); in visitSREM()
2348 SDValue N0 = N->getOperand(0); in visitUREM()
2349 SDValue N1 = N->getOperand(1); in visitUREM()
2368 if (ConstantSDNode *SHC = getAsNonOpaqueConstant(N1.getOperand(0))) { in visitUREM()
2407 SDValue N0 = N->getOperand(0); in visitMULHS()
2408 SDValue N1 = N->getOperand(1); in visitMULHS()
2448 SDValue N0 = N->getOperand(0); in visitMULHU()
2449 SDValue N1 = N->getOperand(1); in visitMULHU()
2548 SDValue Lo = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(0)); in visitSMUL_LOHI()
2549 SDValue Hi = DAG.getNode(ISD::SIGN_EXTEND, DL, NewVT, N->getOperand(1)); in visitSMUL_LOHI()
2579 SDValue Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(0)); in visitUMUL_LOHI()
2580 SDValue Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, NewVT, N->getOperand(1)); in visitUMUL_LOHI()
2598 if (ConstantSDNode *C2 = dyn_cast<ConstantSDNode>(N->getOperand(1))) in visitSMULO()
2601 N->getOperand(0), N->getOperand(0)); in visitSMULO()
2608 if (ConstantSDNode *C2 = dyn_cast<ConstantSDNode>(N->getOperand(1))) in visitUMULO()
2611 N->getOperand(0), N->getOperand(0)); in visitUMULO()
2633 SDValue N0 = N->getOperand(0), N1 = N->getOperand(1); in SimplifyBinOpWithSameOpcodeHands()
2649 EVT Op0VT = N0.getOperand(0).getValueType(); in SimplifyBinOpWithSameOpcodeHands()
2661 Op0VT == N1.getOperand(0).getValueType() && in SimplifyBinOpWithSameOpcodeHands()
2664 N0.getOperand(0).getValueType(), in SimplifyBinOpWithSameOpcodeHands()
2665 N0.getOperand(0), N1.getOperand(0)); in SimplifyBinOpWithSameOpcodeHands()
2676 N0.getOperand(1) == N1.getOperand(1)) { in SimplifyBinOpWithSameOpcodeHands()
2678 N0.getOperand(0).getValueType(), in SimplifyBinOpWithSameOpcodeHands()
2679 N0.getOperand(0), N1.getOperand(0)); in SimplifyBinOpWithSameOpcodeHands()
2682 ORNode, N0.getOperand(1)); in SimplifyBinOpWithSameOpcodeHands()
2695 SDValue In0 = N0.getOperand(0); in SimplifyBinOpWithSameOpcodeHands()
2696 SDValue In1 = N1.getOperand(0); in SimplifyBinOpWithSameOpcodeHands()
2726 assert(N0.getOperand(0).getValueType() == N1.getOperand(0).getValueType() && in SimplifyBinOpWithSameOpcodeHands()
2735 SDValue ShOp = N0->getOperand(1); in SimplifyBinOpWithSameOpcodeHands()
2749 if (N0.getOperand(1) == N1.getOperand(1) && ShOp.getNode()) { in SimplifyBinOpWithSameOpcodeHands()
2751 N0->getOperand(0), N1->getOperand(0)); in SimplifyBinOpWithSameOpcodeHands()
2759 ShOp = N0->getOperand(0); in SimplifyBinOpWithSameOpcodeHands()
2770 if (N0->getOperand(0) == N1->getOperand(0) && ShOp.getNode()) { in SimplifyBinOpWithSameOpcodeHands()
2772 N0->getOperand(1), N1->getOperand(1)); in SimplifyBinOpWithSameOpcodeHands()
2860 if (ConstantSDNode *ADDI = dyn_cast<ConstantSDNode>(N0.getOperand(1))) { in visitANDLike()
2867 if (ConstantSDNode *SRLI = dyn_cast<ConstantSDNode>(N1.getOperand(1))) { in visitANDLike()
2870 if (DAG.MaskedValueIsZero(N0.getOperand(1), Mask)) { in visitANDLike()
2876 N0.getOperand(0), DAG.getConstant(ADDC, DL, VT)); in visitANDLike()
2891 SDValue N0 = N->getOperand(0); in visitAND()
2892 SDValue N1 = N->getOperand(1); in visitAND()
2943 if (ConstantSDNode *ORI = dyn_cast<ConstantSDNode>(N0.getOperand(1))) in visitAND()
2948 SDValue N0Op0 = N0.getOperand(0); in visitAND()
2972 N0.getOperand(0).getOpcode() == ISD::LOAD) || in visitAND()
2975 N0 : N0.getOperand(0) ); in visitAND()
3075 N0.getOperand(0).getOpcode() == ISD::LOAD))) { in visitAND()
3078 ? cast<LoadSDNode>(N0.getOperand(0)) in visitAND()
3107 EVT PtrType = LN0->getOperand(1).getValueType(); in visitAND()
3197 SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitAND()
3198 N0.getOperand(1), false); in visitAND()
3221 if (N0.getOpcode() == ISD::AND && N0.getOperand(0).getOpcode() == ISD::SRL) in MatchBSwapHWordLow()
3223 if (N1.getOpcode() == ISD::AND && N1.getOperand(0).getOpcode() == ISD::SHL) in MatchBSwapHWordLow()
3228 ConstantSDNode *N01C = dyn_cast<ConstantSDNode>(N0.getOperand(1)); in MatchBSwapHWordLow()
3231 N0 = N0.getOperand(0); in MatchBSwapHWordLow()
3238 ConstantSDNode *N11C = dyn_cast<ConstantSDNode>(N1.getOperand(1)); in MatchBSwapHWordLow()
3241 N1 = N1.getOperand(0); in MatchBSwapHWordLow()
3253 ConstantSDNode *N01C = dyn_cast<ConstantSDNode>(N0.getOperand(1)); in MatchBSwapHWordLow()
3254 ConstantSDNode *N11C = dyn_cast<ConstantSDNode>(N1.getOperand(1)); in MatchBSwapHWordLow()
3261 SDValue N00 = N0->getOperand(0); in MatchBSwapHWordLow()
3265 ConstantSDNode *N001C = dyn_cast<ConstantSDNode>(N00.getOperand(1)); in MatchBSwapHWordLow()
3268 N00 = N00.getOperand(0); in MatchBSwapHWordLow()
3272 SDValue N10 = N1->getOperand(0); in MatchBSwapHWordLow()
3276 ConstantSDNode *N101C = dyn_cast<ConstantSDNode>(N10.getOperand(1)); in MatchBSwapHWordLow()
3279 N10 = N10.getOperand(0); in MatchBSwapHWordLow()
3328 ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N.getOperand(1)); in isBSwapHWordElement()
3343 SDValue N0 = N.getOperand(0); in isBSwapHWordElement()
3350 ConstantSDNode *C = dyn_cast<ConstantSDNode>(N0.getOperand(1)); in isBSwapHWordElement()
3358 ConstantSDNode *C = dyn_cast<ConstantSDNode>(N0.getOperand(1)); in isBSwapHWordElement()
3367 ConstantSDNode *C = dyn_cast<ConstantSDNode>(N.getOperand(1)); in isBSwapHWordElement()
3375 ConstantSDNode *C = dyn_cast<ConstantSDNode>(N.getOperand(1)); in isBSwapHWordElement()
3383 Parts[Num] = N0.getOperand(0).getNode(); in isBSwapHWordElement()
3408 SDValue N00 = N0.getOperand(0); in MatchBSwapHWord()
3409 SDValue N01 = N0.getOperand(1); in MatchBSwapHWord()
3415 SDValue N000 = N00.getOperand(0); in MatchBSwapHWord()
3419 SDValue N001 = N00.getOperand(1); in MatchBSwapHWord()
3422 SDValue N010 = N01.getOperand(0); in MatchBSwapHWord()
3425 SDValue N011 = N01.getOperand(1); in MatchBSwapHWord()
3436 SDValue N000 = N00.getOperand(0); in MatchBSwapHWord()
3439 SDValue N001 = N00.getOperand(1); in MatchBSwapHWord()
3524 getAsNonOpaqueConstant(N0.getOperand(1))) { in visitORLike()
3526 getAsNonOpaqueConstant(N1.getOperand(1))) { in visitORLike()
3532 if (DAG.MaskedValueIsZero(N0.getOperand(0), RHSMask&~LHSMask) && in visitORLike()
3533 DAG.MaskedValueIsZero(N1.getOperand(0), LHSMask&~RHSMask)) { in visitORLike()
3535 N0.getOperand(0), N1.getOperand(0)); in visitORLike()
3547 N0.getOperand(0) == N1.getOperand(0) && in visitORLike()
3551 N0.getOperand(1), N1.getOperand(1)); in visitORLike()
3552 return DAG.getNode(ISD::AND, SDLoc(LocReference), VT, N0.getOperand(0), X); in visitORLike()
3559 SDValue N0 = N->getOperand(0); in visitOR()
3560 SDValue N1 = N->getOperand(1); in visitOR()
3595 N0->getOperand(1) == N1->getOperand(1) && in visitOR()
3596 ISD::isBuildVectorAllZeros(N0.getOperand(1).getNode())) { in visitOR()
3636 return DAG.getVectorShuffle(VT, SDLoc(N), N0->getOperand(0), in visitOR()
3637 N1->getOperand(0), &Mask1[0]); in visitOR()
3639 return DAG.getVectorShuffle(VT, SDLoc(N), N1->getOperand(0), in visitOR()
3640 N0->getOperand(0), &Mask2[0]); in visitOR()
3681 isa<ConstantSDNode>(N0.getOperand(1))) { in visitOR()
3682 ConstantSDNode *C1 = cast<ConstantSDNode>(N0.getOperand(1)); in visitOR()
3688 DAG.getNode(ISD::OR, SDLoc(N0), VT, N0.getOperand(0), N1), COR); in visitOR()
3713 if (isa<ConstantSDNode>(Op.getOperand(1))) { in MatchRotateHalf()
3714 Mask = Op.getOperand(1); in MatchRotateHalf()
3715 Op = Op.getOperand(0); in MatchRotateHalf()
3773 Neg.getOperand(1).getOpcode() == ISD::Constant && in matchRotateSub()
3774 cast<ConstantSDNode>(Neg.getOperand(1))->getAPIntValue() == OpSize - 1) { in matchRotateSub()
3775 Neg = Neg.getOperand(0); in matchRotateSub()
3782 ConstantSDNode *NegC = dyn_cast<ConstantSDNode>(Neg.getOperand(0)); in matchRotateSub()
3785 SDValue NegOp1 = Neg.getOperand(1); in matchRotateSub()
3791 Pos.getOperand(1).getOpcode() == ISD::Constant && in matchRotateSub()
3792 cast<ConstantSDNode>(Pos.getOperand(1))->getAPIntValue() == OpSize - 1) in matchRotateSub()
3793 Pos = Pos.getOperand(0); in matchRotateSub()
3817 Pos.getOperand(0) == NegOp1 && in matchRotateSub()
3818 Pos.getOperand(1).getOpcode() == ISD::Constant) in matchRotateSub()
3819 Width = (cast<ConstantSDNode>(Pos.getOperand(1))->getAPIntValue() + in matchRotateSub()
3881 if (LHSShift.getOperand(0) != RHSShift.getOperand(0)) in MatchRotate()
3895 SDValue LHSShiftArg = LHSShift.getOperand(0); in MatchRotate()
3896 SDValue LHSShiftAmt = LHSShift.getOperand(1); in MatchRotate()
3897 SDValue RHSShiftArg = RHSShift.getOperand(0); in MatchRotate()
3898 SDValue RHSShiftAmt = RHSShift.getOperand(1); in MatchRotate()
3947 LExtOp0 = LHSShiftAmt.getOperand(0); in MatchRotate()
3948 RExtOp0 = RHSShiftAmt.getOperand(0); in MatchRotate()
3965 SDValue N0 = N->getOperand(0); in visitXOR()
3966 SDValue N1 = N->getOperand(1); in visitXOR()
4020 return DAG.getSelectCC(SDLoc(N), LHS, RHS, N0.getOperand(2), in visitXOR()
4021 N0.getOperand(3), NotCC); in visitXOR()
4029 isSetCCEquivalent(N0.getOperand(0), LHS, RHS, CC)){ in visitXOR()
4030 SDValue V = N0.getOperand(0); in visitXOR()
4041 SDValue LHS = N0.getOperand(0), RHS = N0.getOperand(1); in visitXOR()
4053 SDValue LHS = N0.getOperand(0), RHS = N0.getOperand(1); in visitXOR()
4064 N0->getOperand(1) == N1) { in visitXOR()
4065 SDValue X = N0->getOperand(0); in visitXOR()
4072 if (const ConstantSDNode *N00C = getAsNonOpaqueConstant(N0.getOperand(0))) { in visitXOR()
4074 return DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(1), in visitXOR()
4078 if (const ConstantSDNode *N01C = getAsNonOpaqueConstant(N0.getOperand(1))) { in visitXOR()
4080 return DAG.getNode(ISD::XOR, DL, VT, N0.getOperand(0), in visitXOR()
4108 && isAllOnesConstant(N1) && isOneConstant(N0.getOperand(0))) { in visitXOR()
4111 N0.getOperand(1)); in visitXOR()
4131 SDNode *LHS = N->getOperand(0).getNode(); in visitShiftByConstant()
4157 ConstantSDNode *BinOpCst = getAsNonOpaqueConstant(LHS->getOperand(1)); in visitShiftByConstant()
4165 SDNode *BinOpLHSVal = LHS->getOperand(0).getNode(); in visitShiftByConstant()
4169 !isa<ConstantSDNode>(BinOpLHSVal->getOperand(1))) in visitShiftByConstant()
4188 SDValue NewRHS = DAG.getNode(N->getOpcode(), SDLoc(LHS->getOperand(1)), in visitShiftByConstant()
4190 LHS->getOperand(1), N->getOperand(1)); in visitShiftByConstant()
4195 SDLoc(LHS->getOperand(0)), in visitShiftByConstant()
4196 VT, LHS->getOperand(0), N->getOperand(1)); in visitShiftByConstant()
4204 assert(N->getOperand(0).getOpcode() == ISD::AND); in distributeTruncateThroughAnd()
4207 if (N->hasOneUse() && N->getOperand(0).hasOneUse()) { in distributeTruncateThroughAnd()
4208 SDValue N01 = N->getOperand(0).getOperand(1); in distributeTruncateThroughAnd()
4213 SDValue N00 = N->getOperand(0).getOperand(0); in distributeTruncateThroughAnd()
4230 if (N->getOperand(1).getOpcode() == ISD::TRUNCATE && in visitRotate()
4231 N->getOperand(1).getOperand(0).getOpcode() == ISD::AND) { in visitRotate()
4232 SDValue NewOp1 = distributeTruncateThroughAnd(N->getOperand(1).getNode()); in visitRotate()
4235 N->getOperand(0), NewOp1); in visitRotate()
4241 SDValue N0 = N->getOperand(0); in visitSHL()
4242 SDValue N1 = N->getOperand(1); in visitSHL()
4257 SDValue N00 = N0->getOperand(0); in visitSHL()
4258 SDValue N01 = N0->getOperand(1); in visitSHL()
4262 TLI.getBooleanContents(N00.getOperand(0).getValueType()) == in visitSHL()
4296 N1.getOperand(0).getOpcode() == ISD::AND) { in visitSHL()
4307 if (ConstantSDNode *N0C1 = isConstOrConstSplat(N0.getOperand(1))) { in visitSHL()
4313 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), in visitSHL()
4326 N0.getOperand(0).getOpcode() == ISD::SHL) { in visitSHL()
4327 SDValue N0Op0 = N0.getOperand(0); in visitSHL()
4328 if (ConstantSDNode *N0Op0C1 = isConstOrConstSplat(N0Op0.getOperand(1))) { in visitSHL()
4339 N0Op0->getOperand(0)), in visitSHL()
4349 N0.getOperand(0).getOpcode() == ISD::SRL) { in visitSHL()
4350 SDValue N0Op0 = N0.getOperand(0); in visitSHL()
4351 if (ConstantSDNode *N0Op0C1 = isConstOrConstSplat(N0Op0.getOperand(1))) { in visitSHL()
4356 SDValue NewOp0 = N0.getOperand(0); in visitSHL()
4357 EVT CountVT = NewOp0.getOperand(1).getValueType(); in visitSHL()
4373 if (ConstantSDNode *N0C1 = isConstOrConstSplat(N0.getOperand(1))) { in visitSHL()
4378 return DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), in visitSHL()
4380 return DAG.getNode(N0.getOpcode(), DL, VT, N0.getOperand(0), in visitSHL()
4390 if (ConstantSDNode *N0C1 = isConstOrConstSplat(N0.getOperand(1))) { in visitSHL()
4399 Shift = DAG.getNode(ISD::SHL, DL, VT, N0.getOperand(0), in visitSHL()
4404 Shift = DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), in visitSHL()
4414 if (N1C && N0.getOpcode() == ISD::SRA && N1 == N0.getOperand(1)) { in visitSHL()
4421 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), in visitSHL()
4430 (isa<ConstantSDNode>(N0.getOperand(1)) || in visitSHL()
4431 isConstantSplatVector(N0.getOperand(1).getNode(), Val))) { in visitSHL()
4432 SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1); in visitSHL()
4433 SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1); in visitSHL()
4447 SDValue N0 = N->getOperand(0); in visitSRA()
4448 SDValue N1 = N->getOperand(1); in visitSRA()
4479 if (N1C && N0.getOpcode() == ISD::SHL && N1 == N0.getOperand(1)) { in visitSRA()
4488 N0.getOperand(0), DAG.getValueType(ExtVT)); in visitSRA()
4493 if (ConstantSDNode *C1 = isConstOrConstSplat(N0.getOperand(1))) { in visitSRA()
4498 return DAG.getNode(ISD::SRA, DL, VT, N0.getOperand(0), in visitSRA()
4510 const ConstantSDNode *N01C = isConstOrConstSplat(N0.getOperand(1)); in visitSRA()
4533 getShiftAmountTy(N0.getOperand(0).getValueType())); in visitSRA()
4535 N0.getOperand(0), Amt); in visitSRA()
4546 N1.getOperand(0).getOpcode() == ISD::AND) { in visitSRA()
4555 (N0.getOperand(0).getOpcode() == ISD::SRL || in visitSRA()
4556 N0.getOperand(0).getOpcode() == ISD::SRA) && in visitSRA()
4557 N0.getOperand(0).hasOneUse() && in visitSRA()
4558 N0.getOperand(0).getOperand(1).hasOneUse() && in visitSRA()
4560 SDValue N0Op0 = N0.getOperand(0); in visitSRA()
4561 if (ConstantSDNode *LargeShift = isConstOrConstSplat(N0Op0.getOperand(1))) { in visitSRA()
4569 getShiftAmountTy(N0Op0.getOperand(0).getValueType())); in visitSRA()
4571 N0Op0.getOperand(0), Amt); in visitSRA()
4596 SDValue N0 = N->getOperand(0); in visitSRL()
4597 SDValue N1 = N->getOperand(1); in visitSRL()
4630 if (ConstantSDNode *N01C = isConstOrConstSplat(N0.getOperand(1))) { in visitSRL()
4636 return DAG.getNode(ISD::SRL, DL, VT, N0.getOperand(0), in visitSRL()
4643 N0.getOperand(0).getOpcode() == ISD::SRL && in visitSRL()
4644 isa<ConstantSDNode>(N0.getOperand(0)->getOperand(1))) { in visitSRL()
4646 cast<ConstantSDNode>(N0.getOperand(0)->getOperand(1))->getZExtValue(); in visitSRL()
4648 EVT InnerShiftVT = N0.getOperand(0).getValueType(); in visitSRL()
4649 EVT ShiftCountVT = N0.getOperand(0)->getOperand(1).getValueType(); in visitSRL()
4658 N0.getOperand(0)->getOperand(0), in visitSRL()
4665 if (N1C && N0.getOpcode() == ISD::SHL && N0.getOperand(1) == N1) { in visitSRL()
4670 return DAG.getNode(ISD::AND, DL, VT, N0.getOperand(0), in visitSRL()
4678 EVT SmallVT = N0.getOperand(0).getValueType(); in visitSRL()
4687 N0.getOperand(0), in visitSRL()
4703 return DAG.getNode(ISD::SRL, SDLoc(N), VT, N0.getOperand(0), N1); in visitSRL()
4710 DAG.computeKnownBits(N0.getOperand(0), KnownZero, KnownOne); in visitSRL()
4728 SDValue Op = N0.getOperand(0); in visitSRL()
4746 N1.getOperand(0).getOpcode() == ISD::AND) { in visitSRL()
4801 SDValue N0 = N->getOperand(0); in visitBSWAP()
4809 return N0->getOperand(0); in visitBSWAP()
4814 SDValue N0 = N->getOperand(0); in visitCTLZ()
4824 SDValue N0 = N->getOperand(0); in visitCTLZ_ZERO_UNDEF()
4834 SDValue N0 = N->getOperand(0); in visitCTTZ()
4844 SDValue N0 = N->getOperand(0); in visitCTTZ_ZERO_UNDEF()
4854 SDValue N0 = N->getOperand(0); in visitCTPOP()
4901 SDValue N0 = N->getOperand(0); in visitSELECT()
4902 SDValue N1 = N->getOperand(1); in visitSELECT()
4903 SDValue N2 = N->getOperand(2); in visitSELECT()
4991 ISD::CondCode CC = cast<CondCodeSDNode>(N0.getOperand(2))->get(); in visitSELECT()
4994 combineMinNumMaxNum(SDLoc(N), VT, N0.getOperand(0), N0.getOperand(1), in visitSELECT()
5004 N0.getOperand(0), N0.getOperand(1), in visitSELECT()
5005 N1, N2, N0.getOperand(2)); in visitSELECT()
5014 SDValue Cond0 = N0->getOperand(0); in visitSELECT()
5015 SDValue Cond1 = N0->getOperand(1); in visitSELECT()
5023 SDValue Cond0 = N0->getOperand(0); in visitSELECT()
5024 SDValue Cond1 = N0->getOperand(1); in visitSELECT()
5034 SDValue N1_0 = N1->getOperand(0); in visitSELECT()
5035 SDValue N1_1 = N1->getOperand(1); in visitSELECT()
5036 SDValue N1_2 = N1->getOperand(2); in visitSELECT()
5053 SDValue N2_0 = N2->getOperand(0); in visitSELECT()
5054 SDValue N2_1 = N2->getOperand(1); in visitSELECT()
5055 SDValue N2_2 = N2->getOperand(2); in visitSELECT()
5086 Lo = DAG.getNode(N->getOpcode(), DL, LoVT, LL, RL, N->getOperand(2)); in SplitVSETCC()
5087 Hi = DAG.getNode(N->getOpcode(), DL, HiVT, LH, RH, N->getOperand(2)); in SplitVSETCC()
5096 SDValue Cond = N->getOperand(0); in ConvertSelectToConcatVector()
5097 SDValue LHS = N->getOperand(1); in ConvertSelectToConcatVector()
5098 SDValue RHS = N->getOperand(2); in ConvertSelectToConcatVector()
5117 if (Cond->getOperand(i)->getOpcode() == ISD::UNDEF) in ConvertSelectToConcatVector()
5121 BottomHalf = cast<ConstantSDNode>(Cond.getOperand(i)); in ConvertSelectToConcatVector()
5122 else if (Cond->getOperand(i).getNode() != BottomHalf) in ConvertSelectToConcatVector()
5129 if (Cond->getOperand(i)->getOpcode() == ISD::UNDEF) in ConvertSelectToConcatVector()
5133 TopHalf = cast<ConstantSDNode>(Cond.getOperand(i)); in ConvertSelectToConcatVector()
5134 else if (Cond->getOperand(i).getNode() != TopHalf) in ConvertSelectToConcatVector()
5143 BottomHalf->isNullValue() ? RHS->getOperand(0) : LHS->getOperand(0), in ConvertSelectToConcatVector()
5144 TopHalf->isNullValue() ? RHS->getOperand(1) : LHS->getOperand(1)); in ConvertSelectToConcatVector()
5446 SDValue N0 = N->getOperand(0); in visitVSELECT()
5447 SDValue N1 = N->getOperand(1); in visitVSELECT()
5448 SDValue N2 = N->getOperand(2); in visitVSELECT()
5457 SDValue LHS = N0.getOperand(0), RHS = N0.getOperand(1); in visitVSELECT()
5458 ISD::CondCode CC = cast<CondCodeSDNode>(N0.getOperand(2))->get(); in visitVSELECT()
5464 N1 == LHS && N2.getOpcode() == ISD::SUB && N1 == N2.getOperand(1)) in visitVSELECT()
5465 isAbs = ISD::isBuildVectorAllZeros(N2.getOperand(0).getNode()); in visitVSELECT()
5467 N2 == LHS && N1.getOpcode() == ISD::SUB && N2 == N1.getOperand(1)) in visitVSELECT()
5468 isAbs = ISD::isBuildVectorAllZeros(N1.getOperand(0).getNode()); in visitVSELECT()
5535 SDValue N0 = N->getOperand(0); in visitSELECT_CC()
5536 SDValue N1 = N->getOperand(1); in visitSELECT_CC()
5537 SDValue N2 = N->getOperand(2); in visitSELECT_CC()
5538 SDValue N3 = N->getOperand(3); in visitSELECT_CC()
5539 SDValue N4 = N->getOperand(4); in visitSELECT_CC()
5564 SCC.getOperand(0), SCC.getOperand(1), N2, N3, in visitSELECT_CC()
5565 SCC.getOperand(2)); in visitSELECT_CC()
5578 return SimplifySetCC(N->getValueType(0), N->getOperand(0), N->getOperand(1), in visitSETCC()
5579 cast<CondCodeSDNode>(N->getOperand(2))->get(), in visitSETCC()
5593 SDValue N0 = N->getOperand(0); in tryToFoldExtendOfConstant()
5623 SDValue Op = N0->getOperand(i); in tryToFoldExtendOfConstant()
5662 ISD::CondCode CC = cast<CondCodeSDNode>(User->getOperand(2))->get(); in ExtendUsesToFormExtLoad()
5668 SDValue UseOp = User->getOperand(i); in ExtendUsesToFormExtLoad()
5715 SDValue SOp = SetCC->getOperand(j); in ExtendSetCCUses()
5722 Ops.push_back(SetCC->getOperand(2)); in ExtendSetCCUses()
5729 SDValue N0 = N->getOperand(0); in CombineExtLoad()
5824 SDValue N0 = N->getOperand(0); in visitSIGN_EXTEND()
5835 N0.getOperand(0)); in visitSIGN_EXTEND()
5842 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitSIGN_EXTEND()
5853 SDValue Op = N0.getOperand(0); in visitSIGN_EXTEND()
5947 isa<LoadSDNode>(N0.getOperand(0)) && in visitSIGN_EXTEND()
5948 N0.getOperand(1).getOpcode() == ISD::Constant && in visitSIGN_EXTEND()
5951 LoadSDNode *LN0 = cast<LoadSDNode>(N0.getOperand(0)); in visitSIGN_EXTEND()
5956 DoXform = ExtendUsesToFormExtLoad(N, N0.getOperand(0), ISD::SIGN_EXTEND, in visitSIGN_EXTEND()
5963 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); in visitSIGN_EXTEND()
5969 SDLoc(N0.getOperand(0)), in visitSIGN_EXTEND()
5970 N0.getOperand(0).getValueType(), ExtLoad); in visitSIGN_EXTEND()
5972 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1)); in visitSIGN_EXTEND()
5981 EVT N0VT = N0.getOperand(0).getValueType(); in visitSIGN_EXTEND()
5998 return DAG.getSetCC(SDLoc(N), VT, N0.getOperand(0), in visitSIGN_EXTEND()
5999 N0.getOperand(1), in visitSIGN_EXTEND()
6000 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in visitSIGN_EXTEND()
6008 N0.getOperand(0), N0.getOperand(1), in visitSIGN_EXTEND()
6009 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in visitSIGN_EXTEND()
6020 SimplifySelectCC(DL, N0.getOperand(0), N0.getOperand(1), in visitSIGN_EXTEND()
6022 cast<CondCodeSDNode>(N0.getOperand(2))->get(), true); in visitSIGN_EXTEND()
6026 EVT SetCCVT = getSetCCResultType(N0.getOperand(0).getValueType()); in visitSIGN_EXTEND()
6029 ISD::CondCode CC = cast<CondCodeSDNode>(N0.getOperand(2))->get(); in visitSIGN_EXTEND()
6031 N0.getOperand(0), N0.getOperand(1), CC); in visitSIGN_EXTEND()
6054 Op = N->getOperand(0); in isTruncateOf()
6060 cast<CondCodeSDNode>(N->getOperand(2))->get() != ISD::SETNE) in isTruncateOf()
6063 SDValue Op0 = N->getOperand(0); in isTruncateOf()
6064 SDValue Op1 = N->getOperand(1); in isTruncateOf()
6083 SDValue N0 = N->getOperand(0); in visitZERO_EXTEND()
6094 N0.getOperand(0)); in visitZERO_EXTEND()
6125 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitZERO_EXTEND()
6143 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitZERO_EXTEND()
6152 SDValue Op = N0.getOperand(0); in visitZERO_EXTEND()
6167 N0.getOperand(0).getOpcode() == ISD::TRUNCATE && in visitZERO_EXTEND()
6168 N0.getOperand(1).getOpcode() == ISD::Constant && in visitZERO_EXTEND()
6169 (!TLI.isTruncateFree(N0.getOperand(0).getOperand(0).getValueType(), in visitZERO_EXTEND()
6172 SDValue X = N0.getOperand(0).getOperand(0); in visitZERO_EXTEND()
6178 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); in visitZERO_EXTEND()
6224 isa<LoadSDNode>(N0.getOperand(0)) && in visitZERO_EXTEND()
6225 N0.getOperand(1).getOpcode() == ISD::Constant && in visitZERO_EXTEND()
6228 LoadSDNode *LN0 = cast<LoadSDNode>(N0.getOperand(0)); in visitZERO_EXTEND()
6233 DoXform = ExtendUsesToFormExtLoad(N, N0.getOperand(0), ISD::ZERO_EXTEND, in visitZERO_EXTEND()
6240 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); in visitZERO_EXTEND()
6246 SDLoc(N0.getOperand(0)), in visitZERO_EXTEND()
6247 N0.getOperand(0).getValueType(), ExtLoad); in visitZERO_EXTEND()
6249 CombineTo(N0.getOperand(0).getNode(), Trunc, ExtLoad.getValue(1)); in visitZERO_EXTEND()
6281 EVT N0VT = N0.getOperand(0).getValueType(); in visitZERO_EXTEND()
6298 DAG.getSetCC(DL, VT, N0.getOperand(0), in visitZERO_EXTEND()
6299 N0.getOperand(1), in visitZERO_EXTEND()
6300 cast<CondCodeSDNode>(N0.getOperand(2))->get()), in visitZERO_EXTEND()
6314 DAG.getSetCC(DL, MatchingVectorType, N0.getOperand(0), in visitZERO_EXTEND()
6315 N0.getOperand(1), in visitZERO_EXTEND()
6316 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in visitZERO_EXTEND()
6325 SimplifySelectCC(DL, N0.getOperand(0), N0.getOperand(1), in visitZERO_EXTEND()
6327 cast<CondCodeSDNode>(N0.getOperand(2))->get(), true); in visitZERO_EXTEND()
6333 isa<ConstantSDNode>(N0.getOperand(1)) && in visitZERO_EXTEND()
6334 N0.getOperand(0).getOpcode() == ISD::ZERO_EXTEND && in visitZERO_EXTEND()
6336 SDValue ShAmt = N0.getOperand(1); in visitZERO_EXTEND()
6339 SDValue InnerZExt = N0.getOperand(0); in visitZERO_EXTEND()
6343 InnerZExt.getOperand(0).getValueType().getSizeInBits(); in visitZERO_EXTEND()
6355 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)), in visitZERO_EXTEND()
6363 SDValue N0 = N->getOperand(0); in visitANY_EXTEND()
6376 return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0)); in visitANY_EXTEND()
6383 SDNode* oye = N0.getNode()->getOperand(0).getNode(); in visitANY_EXTEND()
6395 SDValue TruncOp = N0.getOperand(0); in visitANY_EXTEND()
6406 N0.getOperand(0).getOpcode() == ISD::TRUNCATE && in visitANY_EXTEND()
6407 N0.getOperand(1).getOpcode() == ISD::Constant && in visitANY_EXTEND()
6408 !TLI.isTruncateFree(N0.getOperand(0).getOperand(0).getValueType(), in visitANY_EXTEND()
6410 SDValue X = N0.getOperand(0).getOperand(0); in visitANY_EXTEND()
6416 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); in visitANY_EXTEND()
6479 EVT N0VT = N0.getOperand(0).getValueType(); in visitANY_EXTEND()
6486 return DAG.getSetCC(SDLoc(N), VT, N0.getOperand(0), in visitANY_EXTEND()
6487 N0.getOperand(1), in visitANY_EXTEND()
6488 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in visitANY_EXTEND()
6495 DAG.getSetCC(SDLoc(N), MatchingVectorType, N0.getOperand(0), in visitANY_EXTEND()
6496 N0.getOperand(1), in visitANY_EXTEND()
6497 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in visitANY_EXTEND()
6505 SimplifySelectCC(DL, N0.getOperand(0), N0.getOperand(1), in visitANY_EXTEND()
6507 cast<CondCodeSDNode>(N0.getOperand(2))->get(), true); in visitANY_EXTEND()
6533 if (DAG.MaskedValueIsZero(V.getOperand(0), Mask)) in GetDemandedBits()
6534 return V.getOperand(1); in GetDemandedBits()
6535 if (DAG.MaskedValueIsZero(V.getOperand(1), Mask)) in GetDemandedBits()
6536 return V.getOperand(0); in GetDemandedBits()
6542 if (ConstantSDNode *RHSC = getAsNonOpaqueConstant(V.getOperand(1))) { in GetDemandedBits()
6549 SDValue SimplifyLHS = GetDemandedBits(V.getOperand(0), NewMask); in GetDemandedBits()
6552 SimplifyLHS, V.getOperand(1)); in GetDemandedBits()
6567 SDValue N0 = N->getOperand(0); in ReduceLoadWidth()
6579 ExtVT = cast<VTSDNode>(N->getOperand(1))->getVT(); in ReduceLoadWidth()
6584 ConstantSDNode *N01 = dyn_cast<ConstantSDNode>(N0.getOperand(1)); in ReduceLoadWidth()
6601 if (ConstantSDNode *N01 = dyn_cast<ConstantSDNode>(N0.getOperand(1))) { in ReduceLoadWidth()
6605 N0 = N0.getOperand(0); in ReduceLoadWidth()
6633 if (ConstantSDNode *N01 = dyn_cast<ConstantSDNode>(N0.getOperand(1))) { in ReduceLoadWidth()
6635 N0 = N0.getOperand(0); in ReduceLoadWidth()
6671 EVT PtrType = N0.getOperand(1).getValueType(); in ReduceLoadWidth()
6732 SDValue N0 = N->getOperand(0); in visitSIGN_EXTEND_INREG()
6733 SDValue N1 = N->getOperand(1); in visitSIGN_EXTEND_INREG()
6749 EVT.bitsLT(cast<VTSDNode>(N0.getOperand(1))->getVT())) in visitSIGN_EXTEND_INREG()
6751 N0.getOperand(0), N1); in visitSIGN_EXTEND_INREG()
6757 SDValue N00 = N0.getOperand(0); in visitSIGN_EXTEND_INREG()
6782 if (ConstantSDNode *ShAmt = dyn_cast<ConstantSDNode>(N0.getOperand(1))) in visitSIGN_EXTEND_INREG()
6786 unsigned InSignBits = DAG.ComputeNumSignBits(N0.getOperand(0)); in visitSIGN_EXTEND_INREG()
6789 N0.getOperand(0), N0.getOperand(1)); in visitSIGN_EXTEND_INREG()
6827 SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0), in visitSIGN_EXTEND_INREG()
6828 N0.getOperand(1), false); in visitSIGN_EXTEND_INREG()
6842 SDValue Op = N0->getOperand(i); in visitSIGN_EXTEND_INREG()
6861 SDValue N0 = N->getOperand(0); in visitSIGN_EXTEND_VECTOR_INREG()
6875 SDValue N0 = N->getOperand(0); in visitTRUNCATE()
6887 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
6892 if (N0.getOperand(0).getValueType().bitsLT(VT)) in visitTRUNCATE()
6895 N0.getOperand(0)); in visitTRUNCATE()
6896 if (N0.getOperand(0).getValueType().bitsGT(VT)) in visitTRUNCATE()
6898 return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0)); in visitTRUNCATE()
6901 return N0.getOperand(0); in visitTRUNCATE()
6917 EVT VecTy = N0.getOperand(0).getValueType(); in visitTRUNCATE()
6927 SDValue EltNo = N0->getOperand(1); in visitTRUNCATE()
6934 NVT, N0.getOperand(0)); in visitTRUNCATE()
6949 SDValue Cond = N0.getOperand(0); in visitTRUNCATE()
6950 SDValue TruncOp0 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(1)); in visitTRUNCATE()
6951 SDValue TruncOp1 = DAG.getNode(ISD::TRUNCATE, SL, VT, N0.getOperand(2)); in visitTRUNCATE()
6962 N0.getOperand(0).getOpcode() == ISD::BUILD_VECTOR && in visitTRUNCATE()
6963 N0.getOperand(0).hasOneUse()) { in visitTRUNCATE()
6965 SDValue BuildVect = N0.getOperand(0); in visitTRUNCATE()
6981 Opnds.push_back(BuildVect.getOperand(i)); in visitTRUNCATE()
7029 SDValue X = N0.getOperand(i); in visitTRUNCATE()
7071 SDValue Elt = N->getOperand(i); in getBuildPairElt()
7074 return Elt.getOperand(Elt.getResNo()).getNode(); in getBuildPairElt()
7111 SDValue N0 = N->getOperand(0); in visitBITCAST()
7146 N0.getOperand(0)); in visitBITCAST()
7182 N0.getOperand(0)); in visitBITCAST()
7200 isa<ConstantFPSDNode>(N0.getOperand(0)) && in visitBITCAST()
7202 unsigned OrigXWidth = N0.getOperand(1).getValueType().getSizeInBits(); in visitBITCAST()
7206 IntXVT, N0.getOperand(1)); in visitBITCAST()
7233 VT, N0.getOperand(0)); in visitBITCAST()
7263 Op.getOperand(0)->getValueType(0) == VT) in visitBITCAST()
7264 return SDValue(Op.getOperand(0)); in visitBITCAST()
7271 SDValue SV0 = PeekThroughBitcast(N0->getOperand(0)); in visitBITCAST()
7272 SDValue SV1 = PeekThroughBitcast(N0->getOperand(1)); in visitBITCAST()
7325 DstEltVT, BV->getOperand(0))); in ConstantFoldBITCASTofBUILD_VECTOR()
7378 SDValue Op = BV->getOperand(i+ (isLE ? (NumInputsPerOutput-j-1) : j)); in ConstantFoldBITCASTofBUILD_VECTOR()
7428 SDValue N0 = N->getOperand(0); in visitFADDForFMACombine()
7429 SDValue N1 = N->getOperand(1); in visitFADDForFMACombine()
7460 N0.getOperand(0), N0.getOperand(1), N1); in visitFADDForFMACombine()
7468 N1.getOperand(0), N1.getOperand(1), N0); in visitFADDForFMACombine()
7475 SDValue N00 = N0.getOperand(0); in visitFADDForFMACombine()
7479 N00.getOperand(0)), in visitFADDForFMACombine()
7481 N00.getOperand(1)), N1); in visitFADDForFMACombine()
7487 SDValue N10 = N1.getOperand(0); in visitFADDForFMACombine()
7491 N10.getOperand(0)), in visitFADDForFMACombine()
7493 N10.getOperand(1)), N0); in visitFADDForFMACombine()
7501 N0.getOperand(2).getOpcode() == ISD::FMUL) { in visitFADDForFMACombine()
7503 N0.getOperand(0), N0.getOperand(1), in visitFADDForFMACombine()
7505 N0.getOperand(2).getOperand(0), in visitFADDForFMACombine()
7506 N0.getOperand(2).getOperand(1), in visitFADDForFMACombine()
7512 N1.getOperand(2).getOpcode() == ISD::FMUL) { in visitFADDForFMACombine()
7514 N1.getOperand(0), N1.getOperand(1), in visitFADDForFMACombine()
7516 N1.getOperand(2).getOperand(0), in visitFADDForFMACombine()
7517 N1.getOperand(2).getOperand(1), in visitFADDForFMACombine()
7533 SDValue N02 = N0.getOperand(2); in visitFADDForFMACombine()
7535 SDValue N020 = N02.getOperand(0); in visitFADDForFMACombine()
7537 return FoldFAddFMAFPExtFMul(N0.getOperand(0), N0.getOperand(1), in visitFADDForFMACombine()
7538 N020.getOperand(0), N020.getOperand(1), in visitFADDForFMACombine()
7559 SDValue N00 = N0.getOperand(0); in visitFADDForFMACombine()
7561 SDValue N002 = N00.getOperand(2); in visitFADDForFMACombine()
7563 return FoldFAddFPExtFMAFMul(N00.getOperand(0), N00.getOperand(1), in visitFADDForFMACombine()
7564 N002.getOperand(0), N002.getOperand(1), in visitFADDForFMACombine()
7572 SDValue N12 = N1.getOperand(2); in visitFADDForFMACombine()
7574 SDValue N120 = N12.getOperand(0); in visitFADDForFMACombine()
7576 return FoldFAddFMAFPExtFMul(N1.getOperand(0), N1.getOperand(1), in visitFADDForFMACombine()
7577 N120.getOperand(0), N120.getOperand(1), in visitFADDForFMACombine()
7588 SDValue N10 = N1.getOperand(0); in visitFADDForFMACombine()
7590 SDValue N102 = N10.getOperand(2); in visitFADDForFMACombine()
7592 return FoldFAddFPExtFMAFMul(N10.getOperand(0), N10.getOperand(1), in visitFADDForFMACombine()
7593 N102.getOperand(0), N102.getOperand(1), in visitFADDForFMACombine()
7605 SDValue N0 = N->getOperand(0); in visitFSUBForFMACombine()
7606 SDValue N1 = N->getOperand(1); in visitFSUBForFMACombine()
7637 N0.getOperand(0), N0.getOperand(1), in visitFSUBForFMACombine()
7647 N1.getOperand(0)), in visitFSUBForFMACombine()
7648 N1.getOperand(1), N0); in visitFSUBForFMACombine()
7652 N0.getOperand(0).getOpcode() == ISD::FMUL && in visitFSUBForFMACombine()
7653 (Aggressive || (N0->hasOneUse() && N0.getOperand(0).hasOneUse()))) { in visitFSUBForFMACombine()
7654 SDValue N00 = N0.getOperand(0).getOperand(0); in visitFSUBForFMACombine()
7655 SDValue N01 = N0.getOperand(0).getOperand(1); in visitFSUBForFMACombine()
7666 SDValue N00 = N0.getOperand(0); in visitFSUBForFMACombine()
7670 N00.getOperand(0)), in visitFSUBForFMACombine()
7672 N00.getOperand(1)), in visitFSUBForFMACombine()
7680 SDValue N10 = N1.getOperand(0); in visitFSUBForFMACombine()
7685 N10.getOperand(0))), in visitFSUBForFMACombine()
7687 N10.getOperand(1)), in visitFSUBForFMACombine()
7698 SDValue N00 = N0.getOperand(0); in visitFSUBForFMACombine()
7700 SDValue N000 = N00.getOperand(0); in visitFSUBForFMACombine()
7705 N000.getOperand(0)), in visitFSUBForFMACombine()
7707 N000.getOperand(1)), in visitFSUBForFMACombine()
7720 SDValue N00 = N0.getOperand(0); in visitFSUBForFMACombine()
7722 SDValue N000 = N00.getOperand(0); in visitFSUBForFMACombine()
7727 N000.getOperand(0)), in visitFSUBForFMACombine()
7729 N000.getOperand(1)), in visitFSUBForFMACombine()
7742 N0.getOperand(2).getOpcode() == ISD::FMUL) { in visitFSUBForFMACombine()
7744 N0.getOperand(0), N0.getOperand(1), in visitFSUBForFMACombine()
7746 N0.getOperand(2).getOperand(0), in visitFSUBForFMACombine()
7747 N0.getOperand(2).getOperand(1), in visitFSUBForFMACombine()
7755 N1.getOperand(2).getOpcode() == ISD::FMUL) { in visitFSUBForFMACombine()
7756 SDValue N20 = N1.getOperand(2).getOperand(0); in visitFSUBForFMACombine()
7757 SDValue N21 = N1.getOperand(2).getOperand(1); in visitFSUBForFMACombine()
7760 N1.getOperand(0)), in visitFSUBForFMACombine()
7761 N1.getOperand(1), in visitFSUBForFMACombine()
7772 SDValue N02 = N0.getOperand(2); in visitFSUBForFMACombine()
7774 SDValue N020 = N02.getOperand(0); in visitFSUBForFMACombine()
7777 N0.getOperand(0), N0.getOperand(1), in visitFSUBForFMACombine()
7780 N020.getOperand(0)), in visitFSUBForFMACombine()
7782 N020.getOperand(1)), in visitFSUBForFMACombine()
7795 SDValue N00 = N0.getOperand(0); in visitFSUBForFMACombine()
7797 SDValue N002 = N00.getOperand(2); in visitFSUBForFMACombine()
7801 N00.getOperand(0)), in visitFSUBForFMACombine()
7803 N00.getOperand(1)), in visitFSUBForFMACombine()
7806 N002.getOperand(0)), in visitFSUBForFMACombine()
7808 N002.getOperand(1)), in visitFSUBForFMACombine()
7817 N1.getOperand(2).getOpcode() == ISD::FP_EXTEND) { in visitFSUBForFMACombine()
7818 SDValue N120 = N1.getOperand(2).getOperand(0); in visitFSUBForFMACombine()
7820 SDValue N1200 = N120.getOperand(0); in visitFSUBForFMACombine()
7821 SDValue N1201 = N120.getOperand(1); in visitFSUBForFMACombine()
7823 DAG.getNode(ISD::FNEG, SL, VT, N1.getOperand(0)), in visitFSUBForFMACombine()
7824 N1.getOperand(1), in visitFSUBForFMACombine()
7842 N1.getOperand(0).getOpcode() == PreferredFusedOpcode) { in visitFSUBForFMACombine()
7843 SDValue N100 = N1.getOperand(0).getOperand(0); in visitFSUBForFMACombine()
7844 SDValue N101 = N1.getOperand(0).getOperand(1); in visitFSUBForFMACombine()
7845 SDValue N102 = N1.getOperand(0).getOperand(2); in visitFSUBForFMACombine()
7847 SDValue N1020 = N102.getOperand(0); in visitFSUBForFMACombine()
7848 SDValue N1021 = N102.getOperand(1); in visitFSUBForFMACombine()
7870 SDValue N0 = N->getOperand(0); in visitFADD()
7871 SDValue N1 = N->getOperand(1); in visitFADD()
7915 isa<ConstantFPSDNode>(N0.getOperand(1))) in visitFADD()
7916 return DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(0), in visitFADD()
7917 DAG.getNode(ISD::FADD, DL, VT, N0.getOperand(1), N1)); in visitFADD()
7920 if (AllowNewConst && N0.getOpcode() == ISD::FNEG && N0.getOperand(0) == N1) in visitFADD()
7924 if (AllowNewConst && N1.getOpcode() == ISD::FNEG && N1.getOperand(0) == N0) in visitFADD()
7932 ConstantFPSDNode *CFP00 = dyn_cast<ConstantFPSDNode>(N0.getOperand(0)); in visitFADD()
7933 ConstantFPSDNode *CFP01 = dyn_cast<ConstantFPSDNode>(N0.getOperand(1)); in visitFADD()
7936 if (CFP01 && !CFP00 && N0.getOperand(0) == N1) { in visitFADD()
7944 N1.getOperand(0) == N1.getOperand(1) && in visitFADD()
7945 N0.getOperand(0) == N1.getOperand(0)) { in visitFADD()
7948 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), NewCFP); in visitFADD()
7953 ConstantFPSDNode *CFP10 = dyn_cast<ConstantFPSDNode>(N1.getOperand(0)); in visitFADD()
7954 ConstantFPSDNode *CFP11 = dyn_cast<ConstantFPSDNode>(N1.getOperand(1)); in visitFADD()
7957 if (CFP11 && !CFP10 && N1.getOperand(0) == N0) { in visitFADD()
7965 N0.getOperand(0) == N0.getOperand(1) && in visitFADD()
7966 N1.getOperand(0) == N0.getOperand(0)) { in visitFADD()
7969 return DAG.getNode(ISD::FMUL, DL, VT, N1.getOperand(0), NewCFP); in visitFADD()
7974 ConstantFPSDNode *CFP = dyn_cast<ConstantFPSDNode>(N0.getOperand(0)); in visitFADD()
7976 if (!CFP && N0.getOperand(0) == N0.getOperand(1) && in visitFADD()
7977 (N0.getOperand(0) == N1)) { in visitFADD()
7984 ConstantFPSDNode *CFP10 = dyn_cast<ConstantFPSDNode>(N1.getOperand(0)); in visitFADD()
7986 if (!CFP10 && N1.getOperand(0) == N1.getOperand(1) && in visitFADD()
7987 N1.getOperand(0) == N0) { in visitFADD()
7996 N0.getOperand(0) == N0.getOperand(1) && in visitFADD()
7997 N1.getOperand(0) == N1.getOperand(1) && in visitFADD()
7998 N0.getOperand(0) == N1.getOperand(0)) { in visitFADD()
8000 N0.getOperand(0), DAG.getConstantFP(4.0, DL, VT)); in visitFADD()
8016 SDValue N0 = N->getOperand(0); in visitFSUB()
8017 SDValue N1 = N->getOperand(1); in visitFSUB()
8059 SDValue N10 = N1->getOperand(0); in visitFSUB()
8060 SDValue N11 = N1->getOperand(1); in visitFSUB()
8081 SDValue N0 = N->getOperand(0); in visitFMUL()
8082 SDValue N1 = N->getOperand(1); in visitFMUL()
8119 SDValue N00 = N0.getOperand(0); in visitFMUL()
8120 SDValue N01 = N0.getOperand(1); in visitFMUL()
8142 if (N0.getOpcode() == ISD::FADD && N0.getOperand(0) == N0.getOperand(1)) { in visitFMUL()
8145 return DAG.getNode(ISD::FMUL, DL, VT, N0.getOperand(0), MulConsts); in visitFMUL()
8174 SDValue N0 = N->getOperand(0); in visitFMA()
8175 SDValue N1 = N->getOperand(1); in visitFMA()
8176 SDValue N2 = N->getOperand(2); in visitFMA()
8208 N0 == N2.getOperand(0) && in visitFMA()
8209 N2.getOperand(1).getOpcode() == ISD::ConstantFP) { in visitFMA()
8211 DAG.getNode(ISD::FADD, dl, VT, N1, N2.getOperand(1))); in visitFMA()
8218 N0.getOperand(1).getOpcode() == ISD::ConstantFP) { in visitFMA()
8220 N0.getOperand(0), in visitFMA()
8221 DAG.getNode(ISD::FMUL, dl, VT, N1, N0.getOperand(1)), in visitFMA()
8247 N2.getOpcode() == ISD::FNEG && N2.getOperand(0) == N0) in visitFMA()
8257 SDValue N0 = N->getOperand(0); in visitFDIV()
8258 SDValue N1 = N->getOperand(1); in visitFDIV()
8297 if (SDValue RV = BuildRsqrtEstimate(N1.getOperand(0))) { in visitFDIV()
8301 N1.getOperand(0).getOpcode() == ISD::FSQRT) { in visitFDIV()
8302 if (SDValue RV = BuildRsqrtEstimate(N1.getOperand(0).getOperand(0))) { in visitFDIV()
8308 N1.getOperand(0).getOpcode() == ISD::FSQRT) { in visitFDIV()
8309 if (SDValue RV = BuildRsqrtEstimate(N1.getOperand(0).getOperand(0))) { in visitFDIV()
8310 RV = DAG.getNode(ISD::FP_ROUND, SDLoc(N1), VT, RV, N1.getOperand(1)); in visitFDIV()
8319 if (N1.getOperand(0).getOpcode() == ISD::FSQRT) { in visitFDIV()
8320 SqrtOp = N1.getOperand(0); in visitFDIV()
8321 OtherOp = N1.getOperand(1); in visitFDIV()
8322 } else if (N1.getOperand(1).getOpcode() == ISD::FSQRT) { in visitFDIV()
8323 SqrtOp = N1.getOperand(1); in visitFDIV()
8324 OtherOp = N1.getOperand(0); in visitFDIV()
8329 if (SDValue RV = BuildRsqrtEstimate(SqrtOp.getOperand(0))) { in visitFDIV()
8372 if (U->getOpcode() == ISD::FDIV && U->getOperand(1) == N1) in visitFDIV()
8384 SDValue Dividend = U->getOperand(0); in visitFDIV()
8403 SDValue N0 = N->getOperand(0); in visitFREM()
8404 SDValue N1 = N->getOperand(1); in visitFREM()
8421 SDValue RV = BuildRsqrtEstimate(N->getOperand(0)); in visitFSQRT()
8427 RV = DAG.getNode(ISD::FMUL, DL, VT, N->getOperand(0), RV); in visitFSQRT()
8434 SDValue ZeroCmp = DAG.getSetCC(DL, CCVT, N->getOperand(0), Zero, ISD::SETEQ); in visitFSQRT()
8443 SDValue N0 = N->getOperand(0); in visitFCOPYSIGN()
8444 SDValue N1 = N->getOperand(1); in visitFCOPYSIGN()
8472 N0.getOperand(0), N1); in visitFCOPYSIGN()
8481 N0, N1.getOperand(1)); in visitFCOPYSIGN()
8487 N0, N1.getOperand(0)); in visitFCOPYSIGN()
8493 SDValue N0 = N->getOperand(0); in visitSINT_TO_FP()
8522 { N0.getOperand(0), N0.getOperand(1), in visitSINT_TO_FP()
8524 N0.getOperand(2) }; in visitSINT_TO_FP()
8531 N0.getOperand(0).getOpcode() == ISD::SETCC &&!VT.isVector() && in visitSINT_TO_FP()
8536 { N0.getOperand(0).getOperand(0), N0.getOperand(0).getOperand(1), in visitSINT_TO_FP()
8538 N0.getOperand(0).getOperand(2) }; in visitSINT_TO_FP()
8547 SDValue N0 = N->getOperand(0); in visitUINT_TO_FP()
8576 { N0.getOperand(0), N0.getOperand(1), in visitUINT_TO_FP()
8578 N0.getOperand(2) }; in visitUINT_TO_FP()
8588 SDValue N0 = N->getOperand(0); in FoldIntToFPToInt()
8594 SDValue Src = N0.getOperand(0); in FoldIntToFPToInt()
8631 SDValue N0 = N->getOperand(0); in visitFP_TO_SINT()
8642 SDValue N0 = N->getOperand(0); in visitFP_TO_UINT()
8653 SDValue N0 = N->getOperand(0); in visitFP_ROUND()
8654 SDValue N1 = N->getOperand(1); in visitFP_ROUND()
8663 if (N0.getOpcode() == ISD::FP_EXTEND && VT == N0.getOperand(0).getValueType()) in visitFP_ROUND()
8664 return N0.getOperand(0); in visitFP_ROUND()
8677 return DAG.getNode(ISD::FP_ROUND, DL, VT, N0.getOperand(0), in visitFP_ROUND()
8685 N0.getOperand(0), N1); in visitFP_ROUND()
8688 Tmp, N0.getOperand(1)); in visitFP_ROUND()
8695 SDValue N0 = N->getOperand(0); in visitFP_ROUND_INREG()
8697 EVT EVT = cast<VTSDNode>(N->getOperand(1))->getVT(); in visitFP_ROUND_INREG()
8711 SDValue N0 = N->getOperand(0); in visitFP_EXTEND()
8726 return DAG.getNode(ISD::FP16_TO_FP, SDLoc(N), VT, N0.getOperand(0)); in visitFP_EXTEND()
8732 SDValue In = N0.getOperand(0); in visitFP_EXTEND()
8736 In, N0.getOperand(1)); in visitFP_EXTEND()
8761 SDValue N0 = N->getOperand(0); in visitFCEIL()
8772 SDValue N0 = N->getOperand(0); in visitFTRUNC()
8783 SDValue N0 = N->getOperand(0); in visitFFLOOR()
8795 SDValue N0 = N->getOperand(0); in visitFNEG()
8811 SDValue Int = N0.getOperand(0); in visitFNEG()
8835 ConstantFPSDNode *CFP1 = dyn_cast<ConstantFPSDNode>(N0.getOperand(1)); in visitFNEG()
8843 ISD::FMUL, SDLoc(N), VT, N0.getOperand(0), in visitFNEG()
8844 DAG.getNode(ISD::FNEG, SDLoc(N), VT, N0.getOperand(1))); in visitFNEG()
8852 SDValue N0 = N->getOperand(0); in visitFMINNUM()
8853 SDValue N1 = N->getOperand(1); in visitFMINNUM()
8873 SDValue N0 = N->getOperand(0); in visitFMAXNUM()
8874 SDValue N1 = N->getOperand(1); in visitFMAXNUM()
8894 SDValue N0 = N->getOperand(0); in visitFABS()
8903 return N->getOperand(0); in visitFABS()
8908 return DAG.getNode(ISD::FABS, SDLoc(N), VT, N0.getOperand(0)); in visitFABS()
8915 SDValue Int = N0.getOperand(0); in visitFABS()
8940 SDValue Chain = N->getOperand(0); in visitBRCOND()
8941 SDValue N1 = N->getOperand(1); in visitBRCOND()
8942 SDValue N2 = N->getOperand(2); in visitBRCOND()
8954 N1.getOperand(0).getValueType())) { in visitBRCOND()
8956 Chain, N1.getOperand(2), in visitBRCOND()
8957 N1.getOperand(0), N1.getOperand(1), N2); in visitBRCOND()
8962 (N1.getOperand(0).hasOneUse() && in visitBRCOND()
8963 N1.getOperand(0).getOpcode() == ISD::SRL))) { in visitBRCOND()
8968 N1 = N1.getOperand(0); in visitBRCOND()
8988 SDValue Op0 = N1.getOperand(0); in visitBRCOND()
8989 SDValue Op1 = N1.getOperand(1); in visitBRCOND()
8993 SDValue AndOp1 = Op0.getOperand(1); in visitBRCOND()
9026 N1 = N->getOperand(1); in visitBRCOND()
9033 SDValue Op0 = TheXor->getOperand(0); in visitBRCOND()
9034 SDValue Op1 = TheXor->getOperand(1); in visitBRCOND()
9088 CondCodeSDNode *CC = cast<CondCodeSDNode>(N->getOperand(1)); in visitBR_CC()
9089 SDValue CondLHS = N->getOperand(2), CondRHS = N->getOperand(3); in visitBR_CC()
9106 N->getOperand(0), Simp.getOperand(2), in visitBR_CC()
9107 Simp.getOperand(0), Simp.getOperand(1), in visitBR_CC()
9108 N->getOperand(4)); in visitBR_CC()
9136 ConstantSDNode *Offset = dyn_cast<ConstantSDNode>(N->getOperand(1)); in canFoldInAddressingMode()
9144 ConstantSDNode *Offset = dyn_cast<ConstantSDNode>(N->getOperand(1)); in canFoldInAddressingMode()
9260 SDValue Op1 = Use.getUser()->getOperand((UI.getOperandNo() + 1) & 1); in CombineToPreIndexedLoadStore()
9331 if (OtherUses[i]->getOperand(OffsetIdx).getNode() == BasePtr.getNode()) in CombineToPreIndexedLoadStore()
9333 assert(OtherUses[i]->getOperand(!OffsetIdx).getNode() == in CombineToPreIndexedLoadStore()
9348 cast<ConstantSDNode>(OtherUses[i]->getOperand(OffsetIdx)); in CombineToPreIndexedLoadStore()
9509 SDValue BP = LD->getOperand(1); in SplitIndexingFromLoad()
9510 SDValue Inc = LD->getOperand(2); in SplitIndexingFromLoad()
9568 bool HasOTCInc = LD->getOperand(2).getOpcode() == ISD::TargetConstant && in visitLOAD()
9569 cast<ConstantSDNode>(LD->getOperand(2))->isOpaque(); in visitLOAD()
9606 return CombineTo(N, Chain.getOperand(1), Chain); in visitLOAD()
9726 LS.Inst->getOperand(0).getValueType())) in addSliceGain()
9949 TLI.getRegClassFor(Use->getOperand(0).getValueType().getSimpleVT()); in canMergeExpensiveCrossRegisterBankCopy()
10153 isa<ConstantSDNode>(User->getOperand(1))) { in SliceUpLoad()
10154 Shift = cast<ConstantSDNode>(User->getOperand(1))->getZExtValue(); in SliceUpLoad()
10207 SliceInst = SliceInst.getOperand(0); in SliceUpLoad()
10228 !isa<ConstantSDNode>(V->getOperand(1)) || in CheckForMaskedLoad()
10229 !ISD::isNormalLoad(V->getOperand(0).getNode())) in CheckForMaskedLoad()
10233 LoadSDNode *LD = cast<LoadSDNode>(V->getOperand(0)); in CheckForMaskedLoad()
10261 uint64_t NotMask = ~cast<ConstantSDNode>(V->getOperand(1))->getSExtValue(); in CheckForMaskedLoad()
10380 MaskedLoad = CheckForMaskedLoad(Value.getOperand(0), Ptr, Chain); in ReduceLoadOpStoreWidth()
10383 Value.getOperand(1), ST,this)) in ReduceLoadOpStoreWidth()
10387 MaskedLoad = CheckForMaskedLoad(Value.getOperand(1), Ptr, Chain); in ReduceLoadOpStoreWidth()
10390 Value.getOperand(0), ST,this)) in ReduceLoadOpStoreWidth()
10395 Value.getOperand(1).getOpcode() != ISD::Constant) in ReduceLoadOpStoreWidth()
10398 SDValue N0 = Value.getOperand(0); in ReduceLoadOpStoreWidth()
10408 SDValue N1 = Value.getOperand(1); in ReduceLoadOpStoreWidth()
10581 if (isa<ConstantSDNode>(Ptr->getOperand(1))) { in match()
10582 int64_t Offset = cast<ConstantSDNode>(Ptr->getOperand(1))->getSExtValue(); in match()
10583 return BaseIndexOffset(Ptr->getOperand(0), SDValue(), Offset, in match()
10592 if (Ptr->getOperand(1)->getOpcode() == ISD::MUL) in match()
10596 SDValue Base = Ptr->getOperand(0); in match()
10597 SDValue IndexOffset = Ptr->getOperand(1); in match()
10601 IndexOffset = IndexOffset->getOperand(0); in match()
10610 SDValue Index = IndexOffset->getOperand(0); in match()
10611 SDValue Offset = IndexOffset->getOperand(1); in match()
10618 Index = Index->getOperand(0); in match()
11214 EVT SVT = Value.getOperand(0).getValueType(); in visitSTORE()
11220 return DAG.getStore(Chain, SDLoc(N), Value.getOperand(0), in visitSTORE()
11419 TLI.isTruncStoreLegal(Value.getOperand(0).getValueType(), in visitSTORE()
11421 return DAG.getTruncStore(Chain, SDLoc(N), Value.getOperand(0), in visitSTORE()
11447 SDValue InVec = N->getOperand(0); in visitINSERT_VECTOR_ELT()
11448 SDValue InVal = N->getOperand(1); in visitINSERT_VECTOR_ELT()
11449 SDValue EltNo = N->getOperand(2); in visitINSERT_VECTOR_ELT()
11475 && isa<ConstantSDNode>(InVec.getOperand(2))) { in visitINSERT_VECTOR_ELT()
11477 cast<ConstantSDNode>(InVec.getOperand(2))->getZExtValue(); in visitINSERT_VECTOR_ELT()
11481 InVec.getOperand(0), InVal, EltNo); in visitINSERT_VECTOR_ELT()
11484 VT, NewOp, InVec.getOperand(1), InVec.getOperand(2)); in visitINSERT_VECTOR_ELT()
11599 SDValue InVec = N->getOperand(0); in visitEXTRACT_VECTOR_ELT()
11607 SDValue InOp = InVec.getOperand(0); in visitEXTRACT_VECTOR_ELT()
11615 SDValue EltNo = N->getOperand(1); in visitEXTRACT_VECTOR_ELT()
11639 SVInVec = InVec->getOperand(0); in visitEXTRACT_VECTOR_ELT()
11641 SVInVec = InVec->getOperand(1); in visitEXTRACT_VECTOR_ELT()
11646 SDValue InOp = SVInVec.getOperand(OrigElt); in visitEXTRACT_VECTOR_ELT()
11679 EVT BCVT = InVec.getOperand(0).getValueType(); in visitEXTRACT_VECTOR_ELT()
11684 InVec = InVec.getOperand(0); in visitEXTRACT_VECTOR_ELT()
11691 !N->getOperand(1)->hasPredecessor(InVec.getNode())) { in visitEXTRACT_VECTOR_ELT()
11692 SDValue Index = N->getOperand(1); in visitEXTRACT_VECTOR_ELT()
11714 InVec.getOperand(0).getValueType() == ExtVT && in visitEXTRACT_VECTOR_ELT()
11715 ISD::isNormalLoad(InVec.getOperand(0).getNode())) { in visitEXTRACT_VECTOR_ELT()
11720 LN0 = cast<LoadSDNode>(InVec.getOperand(0)); in visitEXTRACT_VECTOR_ELT()
11738 InVec = (Idx < (int)NumElems) ? InVec.getOperand(0) : InVec.getOperand(1); in visitEXTRACT_VECTOR_ELT()
11745 InVec = InVec.getOperand(0); in visitEXTRACT_VECTOR_ELT()
11793 SDValue In = N->getOperand(i); in reduceBuildVecExtToExtBuildVec()
11807 EVT InTy = In.getOperand(0).getValueType(); in reduceBuildVecExtToExtBuildVec()
11847 SDValue Cast = N->getOperand(i); in reduceBuildVecExtToExtBuildVec()
11855 In = Cast->getOperand(0); in reduceBuildVecExtToExtBuildVec()
11890 SDValue In = N->getOperand(i); in reduceBuildVecConvertToConvertBuildVec()
11905 EVT InVT = In.getOperand(0).getValueType(); in reduceBuildVecConvertToConvertBuildVec()
11937 SDValue In = N->getOperand(i); in reduceBuildVecConvertToConvertBuildVec()
11942 Opnds.push_back(In.getOperand(0)); in reduceBuildVecConvertToConvertBuildVec()
11980 SDValue Op = N->getOperand(i); in visitBUILD_VECTOR()
11993 !isa<ConstantSDNode>(Op.getOperand(1))) { in visitBUILD_VECTOR()
11999 SDValue ExtractedFromVec = Op.getOperand(0); in visitBUILD_VECTOR()
12019 unsigned Opcode = N->getOperand(i).getOpcode(); in visitBUILD_VECTOR()
12035 SDValue Extract = N->getOperand(i); in visitBUILD_VECTOR()
12036 SDValue ExtVal = Extract.getOperand(1); in visitBUILD_VECTOR()
12038 if (Extract.getOperand(0) == VecIn1) { in visitBUILD_VECTOR()
12126 EVT OpVT = N->getOperand(0).getValueType(); in combineConcatVectorOfScalars()
12144 !Op.getOperand(0).getValueType().isVector()) in combineConcatVectorOfScalars()
12145 Ops.push_back(Op.getOperand(0)); in combineConcatVectorOfScalars()
12194 return N->getOperand(0); in visitCONCAT_VECTORS()
12205 SDValue In = N->getOperand(0); in visitCONCAT_VECTORS()
12210 !In->getOperand(0)->getValueType(0).isVector()) { in visitCONCAT_VECTORS()
12211 SDValue Scalar = In->getOperand(0); in visitCONCAT_VECTORS()
12218 TLI.isTypeLegal(Scalar->getOperand(0).getValueType())) in visitCONCAT_VECTORS()
12219 Scalar = Scalar->getOperand(0); in visitCONCAT_VECTORS()
12257 EVT OpSVT = Op.getOperand(0)->getValueType(0); in visitCONCAT_VECTORS()
12278 DAG.getNode(ISD::TRUNCATE, SDLoc(N), MinVT, Op.getOperand(i))); in visitCONCAT_VECTORS()
12297 unsigned PartNumElem = N->getOperand(0).getValueType().getVectorNumElements(); in visitCONCAT_VECTORS()
12300 SDValue Op = N->getOperand(i); in visitCONCAT_VECTORS()
12311 if (Op.getOperand(0) != SingleSource) in visitCONCAT_VECTORS()
12314 SingleSource = Op.getOperand(0); in visitCONCAT_VECTORS()
12324 ConstantSDNode *CS = dyn_cast<ConstantSDNode>(Op.getOperand(1)); in visitCONCAT_VECTORS()
12342 SDValue V = N->getOperand(0); in visitEXTRACT_SUBVECTOR()
12351 if (V->getOperand(0).getValueType() != NVT) in visitEXTRACT_SUBVECTOR()
12357 return V->getOperand(Idx / NumElems); in visitEXTRACT_SUBVECTOR()
12362 V = V.getOperand(0); in visitEXTRACT_SUBVECTOR()
12368 EVT BigVT = V->getOperand(0).getValueType(); in visitEXTRACT_SUBVECTOR()
12369 EVT SmallVT = V->getOperand(1).getValueType(); in visitEXTRACT_SUBVECTOR()
12374 ConstantSDNode *ExtIdx = dyn_cast<ConstantSDNode>(N->getOperand(1)); in visitEXTRACT_SUBVECTOR()
12375 ConstantSDNode *InsIdx = dyn_cast<ConstantSDNode>(V->getOperand(2)); in visitEXTRACT_SUBVECTOR()
12387 return DAG.getNode(ISD::BITCAST, dl, NVT, V->getOperand(1)); in visitEXTRACT_SUBVECTOR()
12390 N->getOperand(0).getValueType(), in visitEXTRACT_SUBVECTOR()
12391 V->getOperand(0)), N->getOperand(1)); in visitEXTRACT_SUBVECTOR()
12408 EVT OpVT = V->getOperand(0).getValueType(); in simplifyShuffleOperandRecursively()
12415 SDValue Op = V->getOperand(i); in simplifyShuffleOperandRecursively()
12434 SDValue BaseV = V->getOperand(0); in simplifyShuffleOperandRecursively()
12435 SDValue SubV = V->getOperand(1); in simplifyShuffleOperandRecursively()
12436 auto *IdxN = dyn_cast<ConstantSDNode>(V->getOperand(2)); in simplifyShuffleOperandRecursively()
12459 SimplifiedBaseV, SimplifiedSubV, V->getOperand(2)); in simplifyShuffleOperandRecursively()
12490 SDValue N0 = N->getOperand(0); in partitionShuffleOfConcats()
12491 SDValue N1 = N->getOperand(1); in partitionShuffleOfConcats()
12495 EVT ConcatVT = N0.getOperand(0).getValueType(); in partitionShuffleOfConcats()
12505 N0 = DAG.getVectorShuffle(ConcatVT, SDLoc(N), N0.getOperand(0), N0.getOperand(1), in partitionShuffleOfConcats()
12534 Ops.push_back(N0.getOperand(FirstElt)); in partitionShuffleOfConcats()
12536 Ops.push_back(N1.getOperand(FirstElt - N0.getNumOperands())); in partitionShuffleOfConcats()
12539 Ops.push_back(DAG.getUNDEF(N0.getOperand(0).getValueType())); in partitionShuffleOfConcats()
12552 SDValue N0 = N->getOperand(0); in visitVECTOR_SHUFFLE()
12553 SDValue N1 = N->getOperand(1); in visitVECTOR_SHUFFLE()
12617 SDValue ConvInput = V->getOperand(0); in visitVECTOR_SHUFFLE()
12629 if (V->getOperand(i).getOpcode() != ISD::UNDEF) { in visitVECTOR_SHUFFLE()
12630 Base = V->getOperand(i); in visitVECTOR_SHUFFLE()
12638 if (V->getOperand(i) != Base) { in visitVECTOR_SHUFFLE()
12648 const SDValue &Splatted = V->getOperand(SVN->getSplatIndex()); in visitVECTOR_SHUFFLE()
12671 N0.getOperand(0).getValueType() == N1.getOperand(0).getValueType()))) { in visitVECTOR_SHUFFLE()
12688 Op = S.getOperand(Idx); in visitVECTOR_SHUFFLE()
12691 Op = S.getOperand(0); in visitVECTOR_SHUFFLE()
12727 BC0 = BC0.getOperand(0); in visitVECTOR_SHUFFLE()
12770 SDValue SV0 = BC0->getOperand(0); in visitVECTOR_SHUFFLE()
12771 SDValue SV1 = BC0->getOperand(1); in visitVECTOR_SHUFFLE()
12799 assert(N1->getOperand(0).getValueType() == VT && in visitVECTOR_SHUFFLE()
12802 SDValue SV0 = N1->getOperand(0); in visitVECTOR_SHUFFLE()
12803 SDValue SV1 = N1->getOperand(1); in visitVECTOR_SHUFFLE()
12824 assert(OtherSV->getOperand(0).getValueType() == VT && in visitVECTOR_SHUFFLE()
12850 CurrentVec = (Idx < (int) NumElts) ? OtherSV->getOperand(0) in visitVECTOR_SHUFFLE()
12851 : OtherSV->getOperand(1); in visitVECTOR_SHUFFLE()
12920 SDValue InVal = N->getOperand(0); in visitSCALAR_TO_VECTOR()
12926 SDValue InVec = InVal->getOperand(0); in visitSCALAR_TO_VECTOR()
12927 SDValue EltNo = InVal->getOperand(1); in visitSCALAR_TO_VECTOR()
12948 SDValue N0 = N->getOperand(0); in visitINSERT_SUBVECTOR()
12949 SDValue N2 = N->getOperand(2); in visitINSERT_SUBVECTOR()
12962 N->getOperand(1), N0.getOperand(1)); in visitINSERT_SUBVECTOR()
12968 N0.getOperand(0), N->getOperand(1)); in visitINSERT_SUBVECTOR()
12975 SDValue N0 = N->getOperand(0); in visitFP_TO_FP16()
12979 return N0->getOperand(0); in visitFP_TO_FP16()
12990 SDValue LHS = N->getOperand(0); in XformToShuffleWithZero()
12991 SDValue RHS = N->getOperand(1); in XformToShuffleWithZero()
13003 RHS = RHS.getOperand(0); in XformToShuffleWithZero()
13010 SDValue Elt = RHS.getOperand(i); in XformToShuffleWithZero()
13042 SDValue LHS = N->getOperand(0); in SimplifyVBinOp()
13043 SDValue RHS = N->getOperand(1); in SimplifyVBinOp()
13059 SDValue LHSOp = LHS.getOperand(i); in SimplifyVBinOp()
13060 SDValue RHSOp = RHS.getOperand(i); in SimplifyVBinOp()
13103 LHS.getOperand(1).getOpcode() == ISD::UNDEF && in SimplifyVBinOp()
13104 RHS.getOperand(1).getOpcode() == ISD::UNDEF) { in SimplifyVBinOp()
13110 SDValue UndefVector = LHS.getOperand(1); in SimplifyVBinOp()
13112 LHS.getOperand(0), RHS.getOperand(0)); in SimplifyVBinOp()
13126 SDValue SCC = SimplifySelectCC(DL, N0.getOperand(0), N0.getOperand(1), N1, N2, in SimplifySelect()
13127 cast<CondCodeSDNode>(N0.getOperand(2))->get()); in SimplifySelect()
13138 SCC.getOperand(0), SCC.getOperand(1), in SimplifySelect()
13139 SCC.getOperand(4)); in SimplifySelect()
13142 SCC.getOperand(2), SCC.getOperand(3)); in SimplifySelect()
13169 CC = dyn_cast<CondCodeSDNode>(TheSelect->getOperand(4))->get(); in SimplifySelectOps()
13170 CmpLHS = TheSelect->getOperand(0); in SimplifySelectOps()
13171 NegZero = isConstOrConstSplatFP(TheSelect->getOperand(1)); in SimplifySelectOps()
13174 SDValue Cmp = TheSelect->getOperand(0); in SimplifySelectOps()
13176 CC = dyn_cast<CondCodeSDNode>(Cmp.getOperand(2))->get(); in SimplifySelectOps()
13177 CmpLHS = Cmp.getOperand(0); in SimplifySelectOps()
13178 NegZero = isConstOrConstSplatFP(Cmp.getOperand(1)); in SimplifySelectOps()
13182 Sqrt.getOperand(0) == CmpLHS && (CC == ISD::SETOLT || in SimplifySelectOps()
13191 if (TheSelect->getOperand(0).getValueType().isVector()) return false; in SimplifySelectOps()
13208 if (LHS.getOperand(0) != RHS.getOperand(0) || in SimplifySelectOps()
13237 SDNode *CondNode = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
13247 TheSelect->getOperand(0), LLD->getBasePtr(), in SimplifySelectOps()
13250 SDNode *CondLHS = TheSelect->getOperand(0).getNode(); in SimplifySelectOps()
13251 SDNode *CondRHS = TheSelect->getOperand(1).getNode(); in SimplifySelectOps()
13261 TheSelect->getOperand(0), in SimplifySelectOps()
13262 TheSelect->getOperand(1), in SimplifySelectOps()
13264 TheSelect->getOperand(4)); in SimplifySelectOps()
13334 N2 == N3.getOperand(0)) in SimplifySelectCC()
13340 N2.getOperand(0) == N3) in SimplifySelectCC()
13450 SDValue AndLHS = N0->getOperand(0); in SimplifySelectCC()
13451 ConstantSDNode *ConstAndRHS = dyn_cast<ConstantSDNode>(N0->getOperand(1)); in SimplifySelectCC()
13572 N0 == N2 && N3.getOpcode() == ISD::SUB && N0 == N3.getOperand(1)) in SimplifySelectCC()
13573 SubC = dyn_cast<ConstantSDNode>(N3.getOperand(0)); in SimplifySelectCC()
13576 N0 == N3 && N2.getOpcode() == ISD::SUB && N0 == N2.getOperand(1)) in SimplifySelectCC()
13577 SubC = dyn_cast<ConstantSDNode>(N2.getOperand(0)); in SimplifySelectCC()
13611 ConstantSDNode *C = isConstOrConstSplat(N->getOperand(1)); in BuildSDIV()
13631 ConstantSDNode *C = isConstOrConstSplat(N->getOperand(1)); in BuildSDIVPow2()
13652 ConstantSDNode *C = isConstOrConstSplat(N->getOperand(1)); in BuildUDIV()
13811 if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(Base.getOperand(1))) { in FindBaseOffset()
13812 Base = Base.getOperand(0); in FindBaseOffset()
13992 Chains.push_back(Chain.getOperand(0)); in GatherAllAliases()
14008 Chains.push_back(Chain.getOperand(--n)); in GatherAllAliases()