|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/CodeGen/SelectionDAG/DAGCombiner.cpp 3715 SDValue Bits = DAG.getConstant(BitWidth, DL, ShiftAmtTy);
3716 SDValue C1 = DAG.getNode(ISD::CTTZ, DL, VT, N1);
3717 C1 = DAG.getZExtOrTrunc(C1, DL, ShiftAmtTy);
3718 SDValue Inexact = DAG.getNode(ISD::SUB, DL, ShiftAmtTy, Bits, C1);
3723 SDValue Sign = DAG.getNode(ISD::SRA, DL, VT, N0,
3724 DAG.getConstant(BitWidth - 1, DL, ShiftAmtTy));
3728 SDValue Srl = DAG.getNode(ISD::SRL, DL, VT, Sign, Inexact);
3730 SDValue Add = DAG.getNode(ISD::ADD, DL, VT, N0, Srl);
3732 SDValue Sra = DAG.getNode(ISD::SRA, DL, VT, Add, C1);
3737 SDValue One = DAG.getConstant(1, DL, VT);
3738 SDValue AllOnes = DAG.getAllOnesConstant(DL, VT);
3739 SDValue IsOne = DAG.getSetCC(DL, CCVT, N1, One, ISD::SETEQ);
3740 SDValue IsAllOnes = DAG.getSetCC(DL, CCVT, N1, AllOnes, ISD::SETEQ);
3741 SDValue IsOneOrAllOnes = DAG.getNode(ISD::OR, DL, CCVT, IsOne, IsAllOnes);
3742 Sra = DAG.getSelect(DL, VT, IsOneOrAllOnes, N0, Sra);
3746 SDValue Zero = DAG.getConstant(0, DL, VT);
3747 SDValue Sub = DAG.getNode(ISD::SUB, DL, VT, Zero, Sra);
3750 SDValue IsNeg = DAG.getSetCC(DL, CCVT, N1, Zero, ISD::SETLT);
3751 SDValue Res = DAG.getSelect(DL, VT, IsNeg, Sub, Sra);