reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
24676 SDValue InRegLUT = DAG.getBuildVector(CurrVT, DL, LUTVec); 24683 SDValue Op0 = DAG.getBitcast(CurrVT, Op.getOperand(0)); 24684 SDValue Zero = DAG.getConstant(0, DL, CurrVT); 24686 SDValue NibbleShift = DAG.getConstant(0x4, DL, CurrVT); 24688 SDValue Hi = DAG.getNode(ISD::SRL, DL, CurrVT, Op0, NibbleShift); 24690 if (CurrVT.is512BitVector()) { 24691 MVT MaskVT = MVT::getVectorVT(MVT::i1, CurrVT.getVectorNumElements()); 24693 HiZ = DAG.getNode(ISD::SIGN_EXTEND, DL, CurrVT, HiZ); 24695 HiZ = DAG.getSetCC(DL, CurrVT, Hi, Zero, ISD::SETEQ); 24698 Lo = DAG.getNode(X86ISD::PSHUFB, DL, CurrVT, InRegLUT, Lo); 24699 Hi = DAG.getNode(X86ISD::PSHUFB, DL, CurrVT, InRegLUT, Hi); 24700 Lo = DAG.getNode(ISD::AND, DL, CurrVT, Lo, HiZ); 24701 SDValue Res = DAG.getNode(ISD::ADD, DL, CurrVT, Lo, Hi); 24708 while (CurrVT != VT) { 24709 int CurrScalarSizeInBits = CurrVT.getScalarSizeInBits(); 24710 int CurrNumElts = CurrVT.getVectorNumElements(); 24716 if (CurrVT.is512BitVector()) { 24717 MVT MaskVT = MVT::getVectorVT(MVT::i1, CurrVT.getVectorNumElements()); 24718 HiZ = DAG.getSetCC(DL, MaskVT, DAG.getBitcast(CurrVT, Op0), 24719 DAG.getBitcast(CurrVT, Zero), ISD::SETEQ); 24720 HiZ = DAG.getNode(ISD::SIGN_EXTEND, DL, CurrVT, HiZ); 24722 HiZ = DAG.getSetCC(DL, CurrVT, DAG.getBitcast(CurrVT, Op0), 24722 HiZ = DAG.getSetCC(DL, CurrVT, DAG.getBitcast(CurrVT, Op0), 24723 DAG.getBitcast(CurrVT, Zero), ISD::SETEQ); 24735 CurrVT = NextVT;