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

References

lib/Target/XCore/XCoreISelLowering.cpp
  647   LL = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  648                    Mul.getOperand(0), DAG.getConstant(0, dl, MVT::i32));
  649   RL = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  650                    Mul.getOperand(1), DAG.getConstant(0, dl, MVT::i32));
  651   AddendL = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  652                         Other, DAG.getConstant(0, dl, MVT::i32));
  653   AddendH = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  654                         Other, DAG.getConstant(1, dl, MVT::i32));
  656   unsigned LHSSB = DAG.ComputeNumSignBits(Mul.getOperand(0));
  657   unsigned RHSSB = DAG.ComputeNumSignBits(Mul.getOperand(1));
  658   if (DAG.MaskedValueIsZero(Mul.getOperand(0), HighMask) &&
  659       DAG.MaskedValueIsZero(Mul.getOperand(1), HighMask)) {
  661     SDValue Hi = DAG.getNode(XCoreISD::MACCU, dl,
  662                              DAG.getVTList(MVT::i32, MVT::i32), AddendH,
  665     return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi);
  669     SDValue Hi = DAG.getNode(XCoreISD::MACCS, dl,
  670                              DAG.getVTList(MVT::i32, MVT::i32), AddendH,
  673     return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi);
  676   LH = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  677                    Mul.getOperand(0), DAG.getConstant(1, dl, MVT::i32));
  678   RH = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::i32,
  679                    Mul.getOperand(1), DAG.getConstant(1, dl, MVT::i32));
  680   SDValue Hi = DAG.getNode(XCoreISD::MACCU, dl,
  681                            DAG.getVTList(MVT::i32, MVT::i32), AddendH,
  684   RH = DAG.getNode(ISD::MUL, dl, MVT::i32, LL, RH);
  685   LH = DAG.getNode(ISD::MUL, dl, MVT::i32, LH, RL);
  686   Hi = DAG.getNode(ISD::ADD, dl, MVT::i32, Hi, RH);
  687   Hi = DAG.getNode(ISD::ADD, dl, MVT::i32, Hi, LH);
  688   return DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi);