reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 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)),