reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3320 EVT VT = N0.getValueType(); 3323 if (N0.isUndef() || N1.isUndef()) 3336 N0IsConst = ISD::isConstantSplatVector(N0.getNode(), ConstValue0); 3345 N0IsConst = isa<ConstantSDNode>(N0); 3347 ConstValue0 = cast<ConstantSDNode>(N0)->getAPIntValue(); 3348 N0IsOpaqueConst = cast<ConstantSDNode>(N0)->isOpaque(); 3360 N0.getNode(), N1.getNode()); 3363 if (DAG.isConstantIntBuildVectorOrConstantInt(N0) && 3365 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N1, N0); 3371 return N0; 3380 DAG.getConstant(0, DL, VT), N0); 3388 EVT ShiftVT = getShiftAmountTy(N0.getValueType()); 3390 return DAG.getNode(ISD::SHL, DL, VT, N0, Trunc); 3400 DAG.getNode(ISD::SHL, DL, VT, N0, 3402 getShiftAmountTy(N0.getValueType())))); 3430 DAG.getNode(ISD::SHL, DL, VT, N0, DAG.getConstant(ShAmt, DL, VT)); 3431 SDValue R = DAG.getNode(MathOp, DL, VT, Shl, N0); 3439 if (N0.getOpcode() == ISD::SHL && 3441 isConstantOrConstantVector(N0.getOperand(1), /* NoOpaques */ true)) { 3442 SDValue C3 = DAG.getNode(ISD::SHL, SDLoc(N), VT, N1, N0.getOperand(1)); 3444 return DAG.getNode(ISD::MUL, SDLoc(N), VT, N0.getOperand(0), C3); 3453 if (N0.getOpcode() == ISD::SHL && 3454 isConstantOrConstantVector(N0.getOperand(1)) && 3455 N0.getNode()->hasOneUse()) { 3456 Sh = N0; Y = N1; 3460 Sh = N1; Y = N0; 3471 N0.getOpcode() == ISD::ADD && 3472 DAG.isConstantIntBuildVectorOrConstantInt(N0.getOperand(1)) && 3473 isMulAddWithConstProfitable(N, N0, N1)) 3475 DAG.getNode(ISD::MUL, SDLoc(N0), VT, 3476 N0.getOperand(0), N1), 3478 N0.getOperand(1), N1)); 3481 if (SDValue RMUL = reassociateOps(ISD::MUL, SDLoc(N), N0, N1, N->getFlags()))