reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
25023 if (VT.getScalarType() == MVT::i1) 25024 return DAG.getNode(ISD::AND, dl, VT, Op.getOperand(0), Op.getOperand(1)); 25027 if (VT.is256BitVector() && !Subtarget.hasInt256()) 25035 if (VT == MVT::v16i8 || VT == MVT::v32i8 || VT == MVT::v64i8) { 25035 if (VT == MVT::v16i8 || VT == MVT::v32i8 || VT == MVT::v64i8) { 25035 if (VT == MVT::v16i8 || VT == MVT::v32i8 || VT == MVT::v64i8) { 25036 unsigned NumElts = VT.getVectorNumElements(); 25038 if ((VT == MVT::v16i8 && Subtarget.hasInt256()) || 25039 (VT == MVT::v32i8 && Subtarget.canExtendTo512BW())) { 25040 MVT ExVT = MVT::getVectorVT(MVT::i16, VT.getVectorNumElements()); 25042 ISD::TRUNCATE, dl, VT, 25054 SDValue Undef = DAG.getUNDEF(VT); 25055 SDValue ALo = DAG.getBitcast(ExVT, getUnpackl(DAG, dl, VT, A, Undef)); 25056 SDValue AHi = DAG.getBitcast(ExVT, getUnpackh(DAG, dl, VT, A, Undef)); 25074 BLo = DAG.getBitcast(ExVT, getUnpackl(DAG, dl, VT, B, Undef)); 25075 BHi = DAG.getBitcast(ExVT, getUnpackh(DAG, dl, VT, B, Undef)); 25083 return DAG.getNode(X86ISD::PACKUS, dl, VT, RLo, RHi); 25087 if (VT == MVT::v4i32) { 25093 SDValue Aodds = DAG.getVectorShuffle(VT, dl, A, A, UnpackMask); 25094 SDValue Bodds = DAG.getVectorShuffle(VT, dl, B, B, UnpackMask); 25105 Evens = DAG.getBitcast(VT, Evens); 25106 Odds = DAG.getBitcast(VT, Odds); 25111 return DAG.getVectorShuffle(VT, dl, Evens, Odds, ShufMask); 25114 assert((VT == MVT::v2i64 || VT == MVT::v4i64 || VT == MVT::v8i64) && 25114 assert((VT == MVT::v2i64 || VT == MVT::v4i64 || VT == MVT::v8i64) && 25114 assert((VT == MVT::v2i64 || VT == MVT::v4i64 || VT == MVT::v8i64) && 25138 SDValue Zero = DAG.getConstant(0, dl, VT); 25143 AloBlo = DAG.getNode(X86ISD::PMULUDQ, dl, VT, A, B); 25147 SDValue Bhi = getTargetVShiftByConstNode(X86ISD::VSRLI, dl, VT, B, 32, DAG); 25148 AloBhi = DAG.getNode(X86ISD::PMULUDQ, dl, VT, A, Bhi); 25153 SDValue Ahi = getTargetVShiftByConstNode(X86ISD::VSRLI, dl, VT, A, 32, DAG); 25154 AhiBlo = DAG.getNode(X86ISD::PMULUDQ, dl, VT, Ahi, B); 25157 SDValue Hi = DAG.getNode(ISD::ADD, dl, VT, AloBhi, AhiBlo); 25158 Hi = getTargetVShiftByConstNode(X86ISD::VSHLI, dl, VT, Hi, 32, DAG); 25160 return DAG.getNode(ISD::ADD, dl, VT, AloBlo, Hi);