reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);