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

References

lib/Target/X86/X86ISelLowering.cpp
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);