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

References

lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 3323   if (N0.isUndef() || N1.isUndef())
 3337     N1IsConst = ISD::isConstantSplatVector(N1.getNode(), ConstValue1);
 3350     N1IsConst = isa<ConstantSDNode>(N1);
 3352       ConstValue1 = cast<ConstantSDNode>(N1)->getAPIntValue();
 3353       N1IsOpaqueConst = cast<ConstantSDNode>(N1)->isOpaque();
 3360                                       N0.getNode(), N1.getNode());
 3364      !DAG.isConstantIntBuildVectorOrConstantInt(N1))
 3365     return DAG.getNode(ISD::MUL, SDLoc(N), VT, N1, N0);
 3368     return N1;
 3383   if (isConstantOrConstantVector(N1, /*NoOpaques*/ true) &&
 3384       DAG.isKnownToBeAPowerOfTwo(N1) &&
 3387     SDValue LogBase2 = BuildLogBase2(N1, DL);
 3412   if (N1IsConst && TLI.decomposeMulByConstant(*DAG.getContext(), VT, N1)) {
 3440       isConstantOrConstantVector(N1, /* NoOpaques */ true) &&
 3442     SDValue C3 = DAG.getNode(ISD::SHL, SDLoc(N), VT, N1, N0.getOperand(1));
 3456       Sh = N0; Y = N1;
 3457     } else if (N1.getOpcode() == ISD::SHL &&
 3458                isConstantOrConstantVector(N1.getOperand(1)) &&
 3459                N1.getNode()->hasOneUse()) {
 3460       Sh = N1; Y = N0;
 3470   if (DAG.isConstantIntBuildVectorOrConstantInt(N1) &&
 3473       isMulAddWithConstProfitable(N, N0, N1))
 3476                                      N0.getOperand(0), N1),
 3477                          DAG.getNode(ISD::MUL, SDLoc(N1), VT,
 3478                                      N0.getOperand(1), N1));
 3481   if (SDValue RMUL = reassociateOps(ISD::MUL, SDLoc(N), N0, N1, N->getFlags()))