reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
6223 EVT ShVT = getShiftAmountTy(VT, DAG.getDataLayout()); 6225 unsigned NumBitsPerElt = VT.getScalarSizeInBits(); 6229 isOperationLegalOrCustom(ISD::CTLZ, VT)) { 6230 Result = DAG.getNode(ISD::CTLZ, dl, VT, Op); 6235 if (isOperationLegalOrCustom(ISD::CTLZ_ZERO_UNDEF, VT)) { 6237 getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), VT); 6238 SDValue CTLZ = DAG.getNode(ISD::CTLZ_ZERO_UNDEF, dl, VT, Op); 6239 SDValue Zero = DAG.getConstant(0, dl, VT); 6241 Result = DAG.getNode(ISD::SELECT, dl, VT, SrcIsZero, 6242 DAG.getConstant(NumBitsPerElt, dl, VT), CTLZ); 6247 if (VT.isVector() && (!isPowerOf2_32(NumBitsPerElt) || 6248 !isOperationLegalOrCustom(ISD::CTPOP, VT) || 6249 !isOperationLegalOrCustom(ISD::SRL, VT) || 6250 !isOperationLegalOrCustomOrPromote(ISD::OR, VT))) 6264 Op = DAG.getNode(ISD::OR, dl, VT, Op, 6265 DAG.getNode(ISD::SRL, dl, VT, Op, Tmp)); 6267 Op = DAG.getNOT(dl, Op, VT); 6268 Result = DAG.getNode(ISD::CTPOP, dl, VT, Op);