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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 7284   if (SDValue V = DAG.simplifyShift(N0, N1))
 7288   EVT ShiftVT = N1.getValueType();
 7296     BuildVectorSDNode *N1CV = dyn_cast<BuildVectorSDNode>(N1);
 7316   ConstantSDNode *N1C = isConstOrConstSplat(N1);
 7333   if (N1.getOpcode() == ISD::TRUNCATE &&
 7334       N1.getOperand(0).getOpcode() == ISD::AND) {
 7335     if (SDValue NewOp1 = distributeTruncateThroughAnd(N1.getNode()))
 7352     if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), MatchOutOfRange))
 7362     if (ISD::matchBinaryPredicate(N1, N0.getOperand(1), MatchInRange)) {
 7364       SDValue Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, N1, N0.getOperand(1));
 7391     if (ISD::matchBinaryPredicate(InnerShiftAmt, N1, MatchOutOfRange,
 7404     if (ISD::matchBinaryPredicate(InnerShiftAmt, N1, MatchInRange,
 7410       Sum = DAG.getNode(ISD::ADD, DL, ShiftVT, Sum, N1);
 7429     if (ISD::matchBinaryPredicate(InnerShiftAmt, N1, MatchEqual,
 7434       SDValue NewSHL = DAG.getZExtOrTrunc(N1, DL, InnerShiftAmtVT);
 7491   if (N0.getOpcode() == ISD::SRA && N1 == N0.getOperand(1) &&
 7492       isConstantOrConstantVector(N1, /* No Opaques */ true)) {
 7495     SDValue HiBitsMask = DAG.getNode(ISD::SHL, DL, VT, AllBits, N1);
 7505       isConstantOrConstantVector(N1, /* No Opaques */ true) &&
 7508     SDValue Shl0 = DAG.getNode(ISD::SHL, SDLoc(N0), VT, N0.getOperand(0), N1);
 7509     SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1);
 7509     SDValue Shl1 = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1);
 7517       isConstantOrConstantVector(N1, /* No Opaques */ true) &&
 7519     SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1);
 7519     SDValue Shl = DAG.getNode(ISD::SHL, SDLoc(N1), VT, N0.getOperand(1), N1);