reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/SelectionDAG/TargetLowering.cpp
 6277   unsigned NumBitsPerElt = VT.getScalarSizeInBits();
 6281       isOperationLegalOrCustom(ISD::CTTZ, VT)) {
 6282     Result = DAG.getNode(ISD::CTTZ, dl, VT, Op);
 6287   if (isOperationLegalOrCustom(ISD::CTTZ_ZERO_UNDEF, VT)) {
 6289         getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), VT);
 6290     SDValue CTTZ = DAG.getNode(ISD::CTTZ_ZERO_UNDEF, dl, VT, Op);
 6291     SDValue Zero = DAG.getConstant(0, dl, VT);
 6293     Result = DAG.getNode(ISD::SELECT, dl, VT, SrcIsZero,
 6294                          DAG.getConstant(NumBitsPerElt, dl, VT), CTTZ);
 6299   if (VT.isVector() && (!isPowerOf2_32(NumBitsPerElt) ||
 6300                         (!isOperationLegalOrCustom(ISD::CTPOP, VT) &&
 6301                          !isOperationLegalOrCustom(ISD::CTLZ, VT)) ||
 6302                         !isOperationLegalOrCustom(ISD::SUB, VT) ||
 6303                         !isOperationLegalOrCustomOrPromote(ISD::AND, VT) ||
 6304                         !isOperationLegalOrCustomOrPromote(ISD::XOR, VT)))
 6312       ISD::AND, dl, VT, DAG.getNOT(dl, Op, VT),
 6312       ISD::AND, dl, VT, DAG.getNOT(dl, Op, VT),
 6313       DAG.getNode(ISD::SUB, dl, VT, Op, DAG.getConstant(1, dl, VT)));
 6313       DAG.getNode(ISD::SUB, dl, VT, Op, DAG.getConstant(1, dl, VT)));
 6316   if (isOperationLegal(ISD::CTLZ, VT) && !isOperationLegal(ISD::CTPOP, VT)) {
 6316   if (isOperationLegal(ISD::CTLZ, VT) && !isOperationLegal(ISD::CTPOP, VT)) {
 6318         DAG.getNode(ISD::SUB, dl, VT, DAG.getConstant(NumBitsPerElt, dl, VT),
 6318         DAG.getNode(ISD::SUB, dl, VT, DAG.getConstant(NumBitsPerElt, dl, VT),
 6319                     DAG.getNode(ISD::CTLZ, dl, VT, Tmp));
 6323   Result = DAG.getNode(ISD::CTPOP, dl, VT, Tmp);