reference, declarationdefinition
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);