reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
832 SDValue Zero = DAG.getConstant(0, DL, VT); 833 SDValue One = DAG.getConstant(1, DL, VT); 837 SDValue Width = DAG.getConstant(VT.getSizeInBits(), DL, VT); 838 SDValue Width1 = DAG.getConstant(VT.getSizeInBits() - 1, DL, VT); 839 SDValue BigShift = DAG.getNode(ISD::SUB, DL, VT, Shift, Width); 840 SDValue CompShift = DAG.getNode(ISD::SUB, DL, VT, Width1, Shift); 847 SDValue Overflow = DAG.getNode(ISD::SHL, DL, VT, Hi, CompShift); 848 Overflow = DAG.getNode(ISD::SHL, DL, VT, Overflow, One); 850 SDValue HiSmall = DAG.getNode(SRA ? ISD::SRA : ISD::SRL, DL, VT, Hi, Shift); 851 SDValue LoSmall = DAG.getNode(ISD::SRL, DL, VT, Lo, Shift); 852 LoSmall = DAG.getNode(ISD::OR, DL, VT, LoSmall, Overflow); 854 SDValue LoBig = DAG.getNode(SRA ? ISD::SRA : ISD::SRL, DL, VT, Hi, BigShift); 855 SDValue HiBig = SRA ? DAG.getNode(ISD::SRA, DL, VT, Hi, Width1) : Zero; 857 Hi = DAG.getSelectCC(DL, Shift, Width, HiSmall, HiBig, ISD::SETULT); 858 Lo = DAG.getSelectCC(DL, Shift, Width, LoSmall, LoBig, ISD::SETULT); 860 return DAG.getNode(ISD::MERGE_VALUES, DL, DAG.getVTList(VT,VT), Lo, Hi);