|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/CodeGen/SelectionDAG/TargetLowering.cpp 6163 EVT ShVT = getShiftAmountTy(VT, DAG.getDataLayout());
6165 unsigned Len = VT.getScalarSizeInBits();
6166 assert(VT.isInteger() && "CTPOP not implemented for this type.");
6173 if (VT.isVector() && (!isOperationLegalOrCustom(ISD::ADD, VT) ||
6173 if (VT.isVector() && (!isOperationLegalOrCustom(ISD::ADD, VT) ||
6174 !isOperationLegalOrCustom(ISD::SUB, VT) ||
6175 !isOperationLegalOrCustom(ISD::SRL, VT) ||
6176 (Len != 8 && !isOperationLegalOrCustom(ISD::MUL, VT)) ||
6177 !isOperationLegalOrCustomOrPromote(ISD::AND, VT)))
6183 DAG.getConstant(APInt::getSplat(Len, APInt(8, 0x55)), dl, VT);
6185 DAG.getConstant(APInt::getSplat(Len, APInt(8, 0x33)), dl, VT);
6187 DAG.getConstant(APInt::getSplat(Len, APInt(8, 0x0F)), dl, VT);
6189 DAG.getConstant(APInt::getSplat(Len, APInt(8, 0x01)), dl, VT);
6192 Op = DAG.getNode(ISD::SUB, dl, VT, Op,
6193 DAG.getNode(ISD::AND, dl, VT,
6194 DAG.getNode(ISD::SRL, dl, VT, Op,
6198 Op = DAG.getNode(ISD::ADD, dl, VT, DAG.getNode(ISD::AND, dl, VT, Op, Mask33),
6198 Op = DAG.getNode(ISD::ADD, dl, VT, DAG.getNode(ISD::AND, dl, VT, Op, Mask33),
6199 DAG.getNode(ISD::AND, dl, VT,
6200 DAG.getNode(ISD::SRL, dl, VT, Op,
6204 Op = DAG.getNode(ISD::AND, dl, VT,
6205 DAG.getNode(ISD::ADD, dl, VT, Op,
6206 DAG.getNode(ISD::SRL, dl, VT, Op,
6212 DAG.getNode(ISD::SRL, dl, VT, DAG.getNode(ISD::MUL, dl, VT, Op, Mask01),
6212 DAG.getNode(ISD::SRL, dl, VT, DAG.getNode(ISD::MUL, dl, VT, Op, Mask01),