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

References

lib/Target/X86/X86ISelLowering.cpp
38113   EVT VT = N->getValueType(0);
38115   if (SDValue V = combineMulToPMADDWD(N, DAG, Subtarget))
38118   if (SDValue V = combineMulToPMULDQ(N, DAG, Subtarget))
38122     return reduceVMULWidth(N, DAG, Subtarget);
38136   ConstantSDNode *C = dyn_cast<ConstantSDNode>(N->getOperand(1));
38146   SDLoc DL(N);
38148     SDValue NewMul = DAG.getNode(X86ISD::MUL_IMM, DL, VT, N->getOperand(0),
38177         !(SignMulAmt >= 0 && N->hasOneUse() &&
38178           N->use_begin()->getOpcode() == ISD::ADD))
38186       NewMul = DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0),
38189       NewMul = DAG.getNode(X86ISD::MUL_IMM, DL, VT, N->getOperand(0),
38204     NewMul = combineMulSpecial(C->getZExtValue(), N, DAG, VT, DL);
38214           ISD::ADD, DL, VT, N->getOperand(0),
38215           DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0),
38224       NewMul = DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0),
38229         NewMul = DAG.getNode(ISD::SUB, DL, VT, N->getOperand(0), NewMul);
38231         NewMul = DAG.getNode(ISD::SUB, DL, VT, NewMul, N->getOperand(0));
38234       NewMul = DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0),
38237       NewMul = DAG.getNode(ISD::ADD, DL, VT, NewMul, N->getOperand(0));
38238       NewMul = DAG.getNode(ISD::ADD, DL, VT, NewMul, N->getOperand(0));
38241       NewMul = DAG.getNode(ISD::SHL, DL, VT, N->getOperand(0),
38244       NewMul = DAG.getNode(ISD::SUB, DL, VT, NewMul, N->getOperand(0));
38245       NewMul = DAG.getNode(ISD::SUB, DL, VT, NewMul, N->getOperand(0));