Lines Matching refs:DstVT
4269 auto MakeBroadcastOp = [&](SDValue Op, MVT OpVT, MVT DstVT) { in getAVX512Node() argument
4277 if (OpVT == DstVT && Op.getOpcode() != ISD::BITCAST) in getAVX512Node()
4286 return DAG.getConstant(SplatValue, DL, DstVT); in getAVX512Node()
4293 MVT DstVT = VT; in getAVX512Node() local
4295 DstVT = MVT::getVectorVT(SVT, 512 / SVT.getSizeInBits()); in getAVX512Node()
4306 if (SDValue BroadcastOp = MakeBroadcastOp(Op, OpVT, DstVT)) { in getAVX512Node()
4316 SDValue Res = DAG.getNode(Opcode, DL, DstVT, SrcOps); in getAVX512Node()
10059 static bool matchShuffleAsVTRUNC(MVT &SrcVT, MVT &DstVT, MVT VT, in matchShuffleAsVTRUNC() argument
10081 DstVT = MVT::getIntegerVT(EltSizeInBits); in matchShuffleAsVTRUNC()
10084 DstVT = MVT::getVectorVT(DstVT, NumSrcElts); in matchShuffleAsVTRUNC()
10087 DstVT = MVT::getVectorVT(DstVT, 128 / EltSizeInBits); in matchShuffleAsVTRUNC()
10097 static SDValue getAVX512TruncNode(const SDLoc &DL, MVT DstVT, SDValue Src, in getAVX512TruncNode() argument
10101 MVT DstSVT = DstVT.getScalarType(); in getAVX512TruncNode()
10102 unsigned NumDstElts = DstVT.getVectorNumElements(); in getAVX512TruncNode()
10104 unsigned DstEltSizeInBits = DstVT.getScalarSizeInBits(); in getAVX512TruncNode()
10111 return DAG.getNode(ISD::TRUNCATE, DL, DstVT, Src); in getAVX512TruncNode()
10116 return extractSubVector(Trunc, 0, DAG, DL, DstVT.getSizeInBits()); in getAVX512TruncNode()
10123 DstVT.getSizeInBits()); in getAVX512TruncNode()
10130 return getAVX512TruncNode(DL, DstVT, NewSrc, Subtarget, DAG, ZeroUppers); in getAVX512TruncNode()
10136 if (DstVT != TruncVT) in getAVX512TruncNode()
10138 DstVT.getSizeInBits()); in getAVX512TruncNode()
10467 MVT DstVT = MVT::getVectorVT(DstSVT, NumSrcElts * 2); in lowerShuffleWithPACK() local
10468 Res = DAG.getNode(PackOpcode, DL, DstVT, DAG.getBitcast(SrcVT, V1), in lowerShuffleWithPACK()
19437 EVT DstVT, EVT SrcVT, const SDLoc &DL, SDValue Chain, SDValue Pointer, in BuildFILD() argument
19441 bool useSSE = isScalarFPTypeInSSEReg(DstVT); in BuildFILD()
19445 Tys = DAG.getVTList(DstVT, MVT::Other); in BuildFILD()
19455 unsigned SSFISize = DstVT.getStoreSize(); in BuildFILD()
19467 DAG.getMemIntrinsicNode(X86ISD::FST, DL, Tys, FSTOps, DstVT, StoreMMO); in BuildFILD()
19469 DstVT, DL, Chain, StackSlot, in BuildFILD()
19845 MVT DstVT = Op->getSimpleValueType(0); in LowerUINT_TO_FP() local
19849 if (DstVT == MVT::f128) in LowerUINT_TO_FP()
19852 if (isSoftF16(DstVT, Subtarget)) in LowerUINT_TO_FP()
19857 if (DstVT.isVector()) in LowerUINT_TO_FP()
19866 if (Subtarget.hasAVX512() && isScalarFPTypeInSSEReg(DstVT) && in LowerUINT_TO_FP()
19877 return DAG.getNode(ISD::STRICT_SINT_TO_FP, dl, {DstVT, MVT::Other}, in LowerUINT_TO_FP()
19879 return DAG.getNode(ISD::SINT_TO_FP, dl, DstVT, Src); in LowerUINT_TO_FP()
19889 if (SrcVT == MVT::i64 && DstVT == MVT::f64 && Subtarget.hasSSE2() && in LowerUINT_TO_FP()
19894 if (SrcVT == MVT::i32 && Subtarget.hasSSE2() && DstVT != MVT::f80 && in LowerUINT_TO_FP()
19898 (DstVT == MVT::f32 || DstVT == MVT::f64)) in LowerUINT_TO_FP()
19914 BuildFILD(DstVT, MVT::i64, dl, Store2, StackSlot, MPI, SlotAlign, DAG); in LowerUINT_TO_FP()
19969 if (Subtarget.isOSWindows() && DstVT == MVT::f32) in LowerUINT_TO_FP()
19975 if (DstVT == MVT::f80) in LowerUINT_TO_FP()
19977 return DAG.getNode(ISD::STRICT_FP_ROUND, dl, {DstVT, MVT::Other}, in LowerUINT_TO_FP()
19982 if (Subtarget.isOSWindows() && DstVT == MVT::f32) in LowerUINT_TO_FP()
19986 return DAG.getNode(ISD::FP_ROUND, dl, DstVT, Add, in LowerUINT_TO_FP()
20300 static SDValue truncateVectorWithPACK(unsigned Opcode, EVT DstVT, SDValue In, in truncateVectorWithPACK() argument
20305 assert(DstVT.isVector() && "VT not a vector?"); in truncateVectorWithPACK()
20314 if (SrcVT == DstVT) in truncateVectorWithPACK()
20321 unsigned DstSizeInBits = DstVT.getSizeInBits(); in truncateVectorWithPACK()
20323 assert(DstVT.getVectorNumElements() == NumElems && "Illegal truncation"); in truncateVectorWithPACK()
20350 return truncateVectorWithPACK(Opcode, DstVT, Res, DL, DAG, Subtarget); in truncateVectorWithPACK()
20359 EVT DstHalfVT = DstVT.getHalfNumVectorElementsVT(Ctx); in truncateVectorWithPACK()
20370 if (SrcVT.is256BitVector() && DstVT.is128BitVector()) { in truncateVectorWithPACK()
20374 return DAG.getBitcast(DstVT, Res); in truncateVectorWithPACK()
20392 if (DstVT.is256BitVector()) in truncateVectorWithPACK()
20393 return DAG.getBitcast(DstVT, Res); in truncateVectorWithPACK()
20397 return truncateVectorWithPACK(Opcode, DstVT, Res, DL, DAG, Subtarget); in truncateVectorWithPACK()
20408 return truncateVectorWithPACK(Opcode, DstVT, Res, DL, DAG, Subtarget); in truncateVectorWithPACK()
20415 return truncateVectorWithPACK(Opcode, DstVT, Res, DL, DAG, Subtarget); in truncateVectorWithPACK()
20422 static SDValue truncateVectorWithPACKUS(EVT DstVT, SDValue In, const SDLoc &DL, in truncateVectorWithPACKUS() argument
20425 In = DAG.getZeroExtendInReg(In, DL, DstVT); in truncateVectorWithPACKUS()
20426 return truncateVectorWithPACK(X86ISD::PACKUS, DstVT, In, DL, DAG, Subtarget); in truncateVectorWithPACKUS()
20430 static SDValue truncateVectorWithPACKSS(EVT DstVT, SDValue In, const SDLoc &DL, in truncateVectorWithPACKSS() argument
20435 DAG.getValueType(DstVT)); in truncateVectorWithPACKSS()
20436 return truncateVectorWithPACK(X86ISD::PACKSS, DstVT, In, DL, DAG, Subtarget); in truncateVectorWithPACKSS()
20442 static SDValue matchTruncateWithPACK(unsigned &PackOpcode, EVT DstVT, in matchTruncateWithPACK() argument
20451 EVT DstSVT = DstVT.getVectorElementType(); in matchTruncateWithPACK()
20469 (DstVT == MVT::v2i8 && SrcVT == MVT::v2i64 && Subtarget.hasSSSE3())) in matchTruncateWithPACK()
20474 if (SrcVT == MVT::v4i64 && DstVT == MVT::v4i32 && in matchTruncateWithPACK()
20532 static SDValue LowerTruncateVecPackWithSignBits(MVT DstVT, SDValue In, in LowerTruncateVecPackWithSignBits() argument
20537 MVT DstSVT = DstVT.getVectorElementType(); in LowerTruncateVecPackWithSignBits()
20545 if (DstVT.getSizeInBits() >= 128) { in LowerTruncateVecPackWithSignBits()
20548 MVT DstHalfVT = DstVT.getHalfNumVectorElementsVT(); in LowerTruncateVecPackWithSignBits()
20552 DstVT.getSizeInBits()); in LowerTruncateVecPackWithSignBits()
20558 matchTruncateWithPACK(PackOpcode, DstVT, In, DL, DAG, Subtarget)) in LowerTruncateVecPackWithSignBits()
20559 return truncateVectorWithPACK(PackOpcode, DstVT, Src, DL, DAG, Subtarget); in LowerTruncateVecPackWithSignBits()
20566 static SDValue LowerTruncateVecPack(MVT DstVT, SDValue In, const SDLoc &DL, in LowerTruncateVecPack() argument
20570 MVT DstSVT = DstVT.getVectorElementType(); in LowerTruncateVecPack()
20572 unsigned NumElems = DstVT.getVectorNumElements(); in LowerTruncateVecPack()
20588 if (DstVT.getSizeInBits() >= 128) { in LowerTruncateVecPack()
20591 MVT DstHalfVT = DstVT.getHalfNumVectorElementsVT(); in LowerTruncateVecPack()
20594 DstVT.getSizeInBits()); in LowerTruncateVecPack()
20602 return truncateVectorWithPACKUS(DstVT, In, DL, Subtarget, DAG); in LowerTruncateVecPack()
20605 return truncateVectorWithPACKSS(DstVT, In, DL, Subtarget, DAG); in LowerTruncateVecPack()
20611 return truncateVectorWithPACKSS(DstVT, Trunc, DL, Subtarget, DAG); in LowerTruncateVecPack()
21219 EVT DstVT = Op.getSimpleValueType(); in LowerLRINT_LLRINT() local
21223 return DstVT.getScalarType() == MVT::i32 ? Op : SDValue(); in LowerLRINT_LLRINT()
21237 EVT DstVT = N->getValueType(0); in LRINT_LLRINTHelper() local
21254 EVT OtherVT = UseSSE ? SrcVT : DstVT; in LRINT_LLRINTHelper()
21255 SDValue StackPtr = DAG.CreateStackTemporary(DstVT, OtherVT); in LRINT_LLRINTHelper()
21261 assert(DstVT == MVT::i64 && "Invalid LRINT/LLRINT to lower!"); in LRINT_LLRINTHelper()
21274 StoreOps, DstVT, MPI, /*Align*/ std::nullopt, in LRINT_LLRINTHelper()
21277 return DAG.getLoad(DstVT, DL, Chain, StackPtr, MPI); in LRINT_LLRINTHelper()
21295 EVT DstVT = Node->getValueType(0); in LowerFP_TO_INT_SAT() local
21296 EVT TmpVT = DstVT; in LowerFP_TO_INT_SAT()
21305 unsigned DstWidth = DstVT.getScalarSizeInBits(); in LowerFP_TO_INT_SAT()
21355 if (DstVT != TmpVT) { in LowerFP_TO_INT_SAT()
21367 return DAG.getNode(ISD::TRUNCATE, dl, DstVT, FpToInt); in LowerFP_TO_INT_SAT()
21377 SDValue FpToInt = DAG.getNode(FpToIntOpcode, dl, DstVT, BothClamped); in LowerFP_TO_INT_SAT()
21386 SDValue ZeroInt = DAG.getConstant(0, dl, DstVT); in LowerFP_TO_INT_SAT()
21391 SDValue MinIntNode = DAG.getConstant(MinInt, dl, DstVT); in LowerFP_TO_INT_SAT()
21392 SDValue MaxIntNode = DAG.getConstant(MaxInt, dl, DstVT); in LowerFP_TO_INT_SAT()
21397 if (DstVT != TmpVT) { in LowerFP_TO_INT_SAT()
21400 FpToInt = DAG.getNode(ISD::TRUNCATE, dl, DstVT, FpToInt); in LowerFP_TO_INT_SAT()
21420 if (!IsSigned || DstVT != TmpVT) { in LowerFP_TO_INT_SAT()
21425 SDValue ZeroInt = DAG.getConstant(0, dl, DstVT); in LowerFP_TO_INT_SAT()
31144 MVT DstVT = Op.getSimpleValueType(); in LowerBITCAST() local
31148 if (SrcVT == MVT::i64 && DstVT == MVT::v64i1) { in LowerBITCAST()
31160 if ((SrcVT == MVT::v16i1 || SrcVT == MVT::v32i1) && DstVT.isScalarInteger()) { in LowerBITCAST()
31166 return DAG.getZExtOrTrunc(V, DL, DstVT); in LowerBITCAST()
31173 if (!(DstVT == MVT::f64 && SrcVT == MVT::i64) && in LowerBITCAST()
31174 !(DstVT == MVT::x86mmx && SrcVT.isVector())) in LowerBITCAST()
31192 MVT V2X64VT = DstVT == MVT::f64 ? MVT::v2f64 : MVT::v2i64; in LowerBITCAST()
31195 if (DstVT == MVT::x86mmx) in LowerBITCAST()
31196 return DAG.getNode(X86ISD::MOVDQ2Q, dl, DstVT, Src); in LowerBITCAST()
31198 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, DstVT, Src, in LowerBITCAST()
32184 MVT DstVT = Op.getSimpleValueType(); in LowerADDRSPACECAST() local
32192 if (SrcAS == X86AS::PTR32_UPTR && DstVT == MVT::i64) { in LowerADDRSPACECAST()
32193 Op = DAG.getNode(ISD::ZERO_EXTEND, dl, DstVT, Src); in LowerADDRSPACECAST()
32194 } else if (DstVT == MVT::i64) { in LowerADDRSPACECAST()
32195 Op = DAG.getNode(ISD::SIGN_EXTEND, dl, DstVT, Src); in LowerADDRSPACECAST()
32196 } else if (DstVT == MVT::i32) { in LowerADDRSPACECAST()
32197 Op = DAG.getNode(ISD::TRUNCATE, dl, DstVT, Src); in LowerADDRSPACECAST()
33531 EVT DstVT = N->getValueType(0); in ReplaceNodeResults() local
33536 if (SrcVT == MVT::v64i1 && DstVT == MVT::i64 && Subtarget.hasBWI()) { in ReplaceNodeResults()
33547 if (DstVT.isVector() && SrcVT == MVT::x86mmx) { in ReplaceNodeResults()
33550 assert(getTypeAction(*DAG.getContext(), DstVT) == TypeWidenVector && in ReplaceNodeResults()
33552 EVT WideVT = getTypeToTransformTo(*DAG.getContext(), DstVT); in ReplaceNodeResults()
37827 MVT &SrcVT, MVT &DstVT) { in matchUnaryShuffle() argument
37839 SrcVT = DstVT = MaskVT.changeVectorElementType(MVT::f16); in matchUnaryShuffle()
37841 SrcVT = DstVT = !Subtarget.hasSSE2() ? MVT::v4f32 : MaskVT; in matchUnaryShuffle()
37884 DstVT = MVT::getIntegerVT(Scale * MaskEltSize); in matchUnaryShuffle()
37885 DstVT = MVT::getVectorVT(DstVT, NumDstElts); in matchUnaryShuffle()
37898 SrcVT = DstVT = MaskVT.changeVectorElementType(MVT::f16); in matchUnaryShuffle()
37900 SrcVT = DstVT = !Subtarget.hasSSE2() ? MVT::v4f32 : MaskVT; in matchUnaryShuffle()
37910 SrcVT = DstVT = MVT::v2f64; in matchUnaryShuffle()
37915 SrcVT = DstVT = MVT::v4f32; in matchUnaryShuffle()
37920 SrcVT = DstVT = MVT::v4f32; in matchUnaryShuffle()
37929 SrcVT = DstVT = MVT::v4f64; in matchUnaryShuffle()
37935 SrcVT = DstVT = MVT::v8f32; in matchUnaryShuffle()
37941 SrcVT = DstVT = MVT::v8f32; in matchUnaryShuffle()
37952 SrcVT = DstVT = MVT::v8f64; in matchUnaryShuffle()
37959 SrcVT = DstVT = MVT::v16f32; in matchUnaryShuffle()
37966 SrcVT = DstVT = MVT::v16f32; in matchUnaryShuffle()
38130 unsigned &Shuffle, MVT &SrcVT, MVT &DstVT, in matchBinaryShuffle() argument
38142 SrcVT = DstVT = Subtarget.hasSSE2() ? MVT::v2f64 : MVT::v4f32; in matchBinaryShuffle()
38149 SrcVT = DstVT = Subtarget.hasSSE2() ? MVT::v2f64 : MVT::v4f32; in matchBinaryShuffle()
38156 SrcVT = DstVT = MVT::v2f64; in matchBinaryShuffle()
38162 SrcVT = DstVT = MVT::v4f32; in matchBinaryShuffle()
38169 SrcVT = DstVT = MVT::v8f16; in matchBinaryShuffle()
38180 DstVT = MaskVT; in matchBinaryShuffle()
38194 DstVT = MVT::v8i16; in matchBinaryShuffle()
38201 DstVT = MVT::v16i8; in matchBinaryShuffle()
38208 DstVT = MVT::v8i16; in matchBinaryShuffle()
38223 SrcVT = DstVT = MaskVT; in matchBinaryShuffle()
38225 SrcVT = DstVT = (32 == EltSizeInBits ? MVT::v8f32 : MVT::v4f64); in matchBinaryShuffle()
38268 SrcVT = DstVT = MaskVT.changeTypeToInteger(); in matchBinaryShuffle()
38312 SrcVT = DstVT = MaskVT.changeTypeToInteger(); in matchBinaryShuffle()
43648 EVT DstVT = N->getValueType(0); in combineCastedMaskArithmetic() local
43663 DstVT.isScalarInteger()) && in combineCastedMaskArithmetic()
43664 !(DstVT.isVector() && DstVT.getVectorElementType() == MVT::i1 && in combineCastedMaskArithmetic()
43672 LHS.getOperand(0).getValueType() == DstVT) in combineCastedMaskArithmetic()
43673 return DAG.getNode(Op.getOpcode(), SDLoc(N), DstVT, LHS.getOperand(0), in combineCastedMaskArithmetic()
43674 DAG.getBitcast(DstVT, RHS)); in combineCastedMaskArithmetic()
43677 RHS.getOperand(0).getValueType() == DstVT) in combineCastedMaskArithmetic()
43678 return DAG.getNode(Op.getOpcode(), SDLoc(N), DstVT, in combineCastedMaskArithmetic()
43679 DAG.getBitcast(DstVT, LHS), RHS.getOperand(0)); in combineCastedMaskArithmetic()
43685 return DAG.getNode(Op.getOpcode(), SDLoc(N), DstVT, in combineCastedMaskArithmetic()
43686 DAG.getBitcast(DstVT, LHS), RHS); in combineCastedMaskArithmetic()
49365 MVT DstVT = N0.getSimpleValueType(); in combineBitOpWithPACK() local
49366 if (DstVT != N1.getSimpleValueType()) in combineBitOpWithPACK()
49382 return DAG.getBitcast(VT, DAG.getNode(X86ISD::PACKSS, DL, DstVT, LHS, RHS)); in combineBitOpWithPACK()
51761 MVT DstVT = Trunc.getSimpleValueType(); in combineStore() local
51764 unsigned NumTruncBits = DstVT.getScalarSizeInBits() * NumSrcElts; in combineStore()
51765 MVT TruncVT = MVT::getVectorVT(DstVT.getScalarType(), NumSrcElts); in combineStore()
53639 EVT DstVT = N->getValueType(0); in combineSextInRegCmov() local
53673 CMovOp0 = DAG.getNode(IntermediateOpc, DL, DstVT, CMovOp0); in combineSextInRegCmov()
53674 CMovOp1 = DAG.getNode(IntermediateOpc, DL, DstVT, CMovOp1); in combineSextInRegCmov()
53677 CMovOp0 = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, DstVT, CMovOp0, N1); in combineSextInRegCmov()
53678 CMovOp1 = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, DstVT, CMovOp1, N1); in combineSextInRegCmov()
53680 EVT CMovVT = DstVT; in combineSextInRegCmov()
53682 if (DstVT == MVT::i16) { in combineSextInRegCmov()
53691 if (CMovVT != DstVT) in combineSextInRegCmov()
53692 CMov = DAG.getNode(ISD::TRUNCATE, DL, DstVT, CMov); in combineSextInRegCmov()
54922 EVT DstVT = in combineUIntToFP() local
54928 SDValue P = DAG.getNode(ISD::ZERO_EXTEND, dl, DstVT, Op0); in combineUIntToFP()
54941 EVT DstVT = InVT.changeVectorElementType(MVT::i32); in combineUIntToFP() local
54942 SDValue P = DAG.getNode(ISD::ZERO_EXTEND, dl, DstVT, Op0); in combineUIntToFP()
54993 EVT DstVT = in combineSIntToFP() local
54999 SDValue P = DAG.getNode(ISD::SIGN_EXTEND, dl, DstVT, Op0); in combineSIntToFP()
55012 EVT DstVT = InVT.changeVectorElementType(MVT::i32); in combineSIntToFP() local
55013 SDValue P = DAG.getNode(ISD::SIGN_EXTEND, dl, DstVT, Op0); in combineSIntToFP()