reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
9708 if (N0.getOpcode() == ISD::ZERO_EXTEND || N0.getOpcode() == ISD::ANY_EXTEND) 9708 if (N0.getOpcode() == ISD::ZERO_EXTEND || N0.getOpcode() == ISD::ANY_EXTEND) 9710 N0.getOperand(0)); 9717 if (isTruncateOf(DAG, N0, Op, Known)) { 9719 (Op.getScalarValueSizeInBits() == N0.getScalarValueSizeInBits()) ? 9722 N0.getScalarValueSizeInBits(), 9730 if (N0.getOpcode() == ISD::TRUNCATE) { 9733 if (SDValue NarrowLoad = ReduceLoadWidth(N0.getNode())) { 9734 SDNode *oye = N0.getOperand(0).getNode(); 9735 if (NarrowLoad.getNode() != N0.getNode()) { 9736 CombineTo(N0.getNode(), NarrowLoad); 9743 EVT SrcVT = N0.getOperand(0).getValueType(); 9744 EVT MinVT = N0.getValueType(); 9751 SDValue Op = N0.getOperand(0); 9756 DAG.transferDbgValues(N0, ZExtOrTrunc); 9762 SDValue Op = DAG.getAnyExtOrTrunc(N0.getOperand(0), SDLoc(N), VT); 9767 DAG.transferDbgValues(N0, And); 9774 if (N0.getOpcode() == ISD::AND && 9775 N0.getOperand(0).getOpcode() == ISD::TRUNCATE && 9776 N0.getOperand(1).getOpcode() == ISD::Constant && 9777 (!TLI.isTruncateFree(N0.getOperand(0).getOperand(0).getValueType(), 9778 N0.getValueType()) || 9779 !TLI.isZExtFree(N0.getValueType(), VT))) { 9780 SDValue X = N0.getOperand(0).getOperand(0); 9782 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); 9791 tryToFoldExtOfLoad(DAG, *this, TLI, VT, LegalOperations, N, N0, 9796 tryToFoldExtOfMaskedLoad(DAG, TLI, VT, N, N0, ISD::ZEXTLOAD, 9809 if ((N0.getOpcode() == ISD::AND || N0.getOpcode() == ISD::OR || 9809 if ((N0.getOpcode() == ISD::AND || N0.getOpcode() == ISD::OR || 9810 N0.getOpcode() == ISD::XOR) && 9811 isa<LoadSDNode>(N0.getOperand(0)) && 9812 N0.getOperand(1).getOpcode() == ISD::Constant && 9813 (!LegalOperations && TLI.isOperationLegal(N0.getOpcode(), VT))) { 9814 LoadSDNode *LN00 = cast<LoadSDNode>(N0.getOperand(0)); 9820 if (!N0.hasOneUse()) { 9821 if (N0.getOpcode() == ISD::AND) { 9822 auto *AndC = cast<ConstantSDNode>(N0.getOperand(1)); 9830 DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), 9830 DoXform = ExtendUsesToFormExtLoad(VT, N0.getNode(), N0.getOperand(0), 9837 APInt Mask = cast<ConstantSDNode>(N0.getOperand(1))->getAPIntValue(); 9840 SDValue And = DAG.getNode(N0.getOpcode(), DL, VT, 9842 ExtendSetCCUses(SetCCs, N0.getOperand(0), ExtLoad, ISD::ZERO_EXTEND); 9843 bool NoReplaceTruncAnd = !N0.hasOneUse(); 9849 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), And); 9850 CombineTo(N0.getNode(), TruncAnd); 9871 DAG, *this, TLI, VT, LegalOperations, N, N0, ISD::ZEXTLOAD)) 9877 if (N0.getOpcode() == ISD::SETCC) { 9880 N0.getValueType().getVectorElementType() == MVT::i1) { 9881 EVT N00VT = N0.getOperand(0).getValueType(); 9882 if (getSetCCResultType(N00VT) == N0.getValueType()) 9894 SDValue VSetCC = DAG.getNode(ISD::SETCC, DL, VT, N0.getOperand(0), 9895 N0.getOperand(1), N0.getOperand(2)); 9895 N0.getOperand(1), N0.getOperand(2)); 9904 DAG.getNode(ISD::SETCC, DL, MatchingVectorType, N0.getOperand(0), 9905 N0.getOperand(1), N0.getOperand(2)); 9905 N0.getOperand(1), N0.getOperand(2)); 9913 DL, N0.getOperand(0), N0.getOperand(1), DAG.getConstant(1, DL, VT), 9913 DL, N0.getOperand(0), N0.getOperand(1), DAG.getConstant(1, DL, VT), 9915 cast<CondCodeSDNode>(N0.getOperand(2))->get(), true)) 9920 if ((N0.getOpcode() == ISD::SHL || N0.getOpcode() == ISD::SRL) && 9920 if ((N0.getOpcode() == ISD::SHL || N0.getOpcode() == ISD::SRL) && 9921 isa<ConstantSDNode>(N0.getOperand(1)) && 9922 N0.getOperand(0).getOpcode() == ISD::ZERO_EXTEND && 9923 N0.hasOneUse()) { 9924 SDValue ShAmt = N0.getOperand(1); 9925 if (N0.getOpcode() == ISD::SHL) { 9926 SDValue InnerZExt = N0.getOperand(0); 9941 return DAG.getNode(N0.getOpcode(), DL, VT, 9942 DAG.getNode(ISD::ZERO_EXTEND, DL, VT, N0.getOperand(0)),