|
reference, declaration → definition
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);