Lines Matching refs:VecVT
1325 EVT VecVT = VecOp.getValueType(); in shouldScalarizeBinop() local
1326 if (!isOperationLegalOrCustomOrPromote(Opc, VecVT)) in shouldScalarizeBinop()
1331 EVT ScalarVT = VecVT.getScalarType(); in shouldScalarizeBinop()
1526 MVT VecVT, MVT SubVecVT, unsigned InsertExtractIdx, in decomposeSubvectorInsertExtractToSubRegs() argument
1532 unsigned VecRegClassID = getRegClassIDForVecVT(VecVT); in decomposeSubvectorInsertExtractToSubRegs()
1544 VecVT = VecVT.getHalfNumVectorElementsVT(); in decomposeSubvectorInsertExtractToSubRegs()
1546 InsertExtractIdx >= VecVT.getVectorElementCount().getKnownMinValue(); in decomposeSubvectorInsertExtractToSubRegs()
1548 getSubregIndexByMVT(VecVT, IsHi)); in decomposeSubvectorInsertExtractToSubRegs()
1550 InsertExtractIdx -= VecVT.getVectorElementCount().getKnownMinValue(); in decomposeSubvectorInsertExtractToSubRegs()
1739 static MVT getMaskTypeFor(MVT VecVT) { in getMaskTypeFor() argument
1740 assert(VecVT.isVector()); in getMaskTypeFor()
1741 ElementCount EC = VecVT.getVectorElementCount(); in getMaskTypeFor()
1747 static SDValue getAllOnesMask(MVT VecVT, SDValue VL, SDLoc DL, in getAllOnesMask() argument
1749 MVT MaskVT = getMaskTypeFor(VecVT); in getAllOnesMask()
1757 getDefaultVLOps(MVT VecVT, MVT ContainerVT, SDLoc DL, SelectionDAG &DAG, in getDefaultVLOps() argument
1761 SDValue VL = VecVT.isFixedLengthVector() in getDefaultVLOps()
1762 ? DAG.getConstant(VecVT.getVectorNumElements(), DL, XLenVT) in getDefaultVLOps()
1770 getDefaultScalableVLOps(MVT VecVT, SDLoc DL, SelectionDAG &DAG, in getDefaultScalableVLOps() argument
1772 assert(VecVT.isScalableVector() && "Expecting a scalable vector"); in getDefaultScalableVLOps()
1773 return getDefaultVLOps(VecVT, VecVT, DL, DAG, Subtarget); in getDefaultScalableVLOps()
4164 MVT VecVT = Op.getSimpleValueType(); in lowerSPLAT_VECTOR_PARTS() local
4165 assert(!Subtarget.is64Bit() && VecVT.getVectorElementType() == MVT::i64 && in lowerSPLAT_VECTOR_PARTS()
4172 if (VecVT.isFixedLengthVector()) { in lowerSPLAT_VECTOR_PARTS()
4173 MVT ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerSPLAT_VECTOR_PARTS()
4177 getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerSPLAT_VECTOR_PARTS()
4181 return convertFromScalableVector(VecVT, Res, DAG, Subtarget); in lowerSPLAT_VECTOR_PARTS()
4190 return DAG.getNode(RISCVISD::VMV_V_X_VL, DL, VecVT, DAG.getUNDEF(VecVT), in lowerSPLAT_VECTOR_PARTS()
4198 return DAG.getNode(RISCVISD::VMV_V_X_VL, DL, VecVT, DAG.getUNDEF(VecVT), Lo, in lowerSPLAT_VECTOR_PARTS()
4202 return DAG.getNode(RISCVISD::SPLAT_VECTOR_SPLIT_I64_VL, DL, VecVT, in lowerSPLAT_VECTOR_PARTS()
4203 DAG.getUNDEF(VecVT), Lo, Hi, in lowerSPLAT_VECTOR_PARTS()
4214 MVT VecVT = Op.getSimpleValueType(); in lowerVectorMaskExt() local
4220 if (VecVT.isScalableVector()) { in lowerVectorMaskExt()
4221 SDValue SplatZero = DAG.getConstant(0, DL, VecVT); in lowerVectorMaskExt()
4222 SDValue SplatTrueVal = DAG.getConstant(ExtTrueVal, DL, VecVT); in lowerVectorMaskExt()
4223 return DAG.getNode(ISD::VSELECT, DL, VecVT, Src, SplatTrueVal, SplatZero); in lowerVectorMaskExt()
4226 MVT ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerVectorMaskExt()
4233 std::tie(Mask, VL) = getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerVectorMaskExt()
4246 return convertFromScalableVector(VecVT, Select, DAG, Subtarget); in lowerVectorMaskExt()
4289 MVT VecVT = Src.getSimpleValueType(); in lowerVectorMaskTruncLike() local
4296 MVT ContainerVT = VecVT; in lowerVectorMaskTruncLike()
4298 if (VecVT.isFixedLengthVector()) { in lowerVectorMaskTruncLike()
4299 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerVectorMaskTruncLike()
4310 getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerVectorMaskTruncLike()
4471 MVT VecVT = Op.getSimpleValueType(); in lowerINSERT_VECTOR_ELT() local
4476 if (VecVT.getVectorElementType() == MVT::i1) { in lowerINSERT_VECTOR_ELT()
4479 MVT WideVT = MVT::getVectorVT(MVT::i8, VecVT.getVectorElementCount()); in lowerINSERT_VECTOR_ELT()
4482 return DAG.getNode(ISD::TRUNCATE, DL, VecVT, Vec); in lowerINSERT_VECTOR_ELT()
4485 MVT ContainerVT = VecVT; in lowerINSERT_VECTOR_ELT()
4487 if (VecVT.isFixedLengthVector()) { in lowerINSERT_VECTOR_ELT()
4488 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerINSERT_VECTOR_ELT()
4509 std::tie(Mask, VL) = getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerINSERT_VECTOR_ELT()
4515 VecVT.isFloatingPoint() ? RISCVISD::VFMV_S_F_VL : RISCVISD::VMV_S_X_VL; in lowerINSERT_VECTOR_ELT()
4518 if (!VecVT.isFixedLengthVector()) in lowerINSERT_VECTOR_ELT()
4520 return convertFromScalableVector(VecVT, Vec, DAG, Subtarget); in lowerINSERT_VECTOR_ELT()
4558 if (!VecVT.isFixedLengthVector()) in lowerINSERT_VECTOR_ELT()
4560 return convertFromScalableVector(VecVT, Slideup, DAG, Subtarget); in lowerINSERT_VECTOR_ELT()
4573 MVT VecVT = Vec.getSimpleValueType(); in lowerEXTRACT_VECTOR_ELT() local
4576 if (VecVT.getVectorElementType() == MVT::i1) { in lowerEXTRACT_VECTOR_ELT()
4577 if (VecVT.isFixedLengthVector()) { in lowerEXTRACT_VECTOR_ELT()
4578 unsigned NumElts = VecVT.getVectorNumElements(); in lowerEXTRACT_VECTOR_ELT()
4618 MVT WideVT = MVT::getVectorVT(MVT::i8, VecVT.getVectorElementCount()); in lowerEXTRACT_VECTOR_ELT()
4624 MVT ContainerVT = VecVT; in lowerEXTRACT_VECTOR_ELT()
4625 if (VecVT.isFixedLengthVector()) { in lowerEXTRACT_VECTOR_ELT()
4626 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerEXTRACT_VECTOR_ELT()
5142 MVT VecVT = Vec.getSimpleValueType(); in lowerVectorMaskVecReduction() local
5155 MVT ContainerVT = VecVT; in lowerVectorMaskVecReduction()
5156 if (VecVT.isFixedLengthVector()) { in lowerVectorMaskVecReduction()
5157 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerVectorMaskVecReduction()
5167 getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerVectorMaskVecReduction()
5243 MVT VecVT = VecEVT.getSimpleVT(); in lowerVECREDUCE() local
5244 MVT VecEltVT = VecVT.getVectorElementType(); in lowerVECREDUCE()
5247 MVT ContainerVT = VecVT; in lowerVECREDUCE()
5248 if (VecVT.isFixedLengthVector()) { in lowerVECREDUCE()
5249 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerVECREDUCE()
5257 std::tie(Mask, VL) = getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerVECREDUCE()
5310 MVT VecVT = VectorVal.getSimpleValueType(); in lowerFPVECREDUCE() local
5312 MVT ContainerVT = VecVT; in lowerFPVECREDUCE()
5313 if (VecVT.isFixedLengthVector()) { in lowerFPVECREDUCE()
5314 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerFPVECREDUCE()
5322 std::tie(Mask, VL) = getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget); in lowerFPVECREDUCE()
5375 MVT VecVT = VecEVT.getSimpleVT(); in lowerVPREDUCE() local
5376 MVT VecEltVT = VecVT.getVectorElementType(); in lowerVPREDUCE()
5379 MVT ContainerVT = VecVT; in lowerVPREDUCE()
5380 if (VecVT.isFixedLengthVector()) { in lowerVPREDUCE()
5381 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerVPREDUCE()
5390 MVT ResVT = !VecVT.isInteger() || VecEltVT.bitsGE(XLenVT) ? VecEltVT : XLenVT; in lowerVPREDUCE()
5399 if (!VecVT.isInteger()) in lowerVPREDUCE()
5408 MVT VecVT = Vec.getSimpleValueType(); in lowerINSERT_SUBVECTOR() local
5423 if (VecVT.getVectorMinNumElements() >= 8 && in lowerINSERT_SUBVECTOR()
5426 assert(VecVT.getVectorMinNumElements() % 8 == 0 && in lowerINSERT_SUBVECTOR()
5433 VecVT = MVT::getVectorVT(MVT::i8, VecVT.getVectorMinNumElements() / 8, in lowerINSERT_SUBVECTOR()
5434 VecVT.isScalableVector()); in lowerINSERT_SUBVECTOR()
5435 Vec = DAG.getBitcast(VecVT, Vec); in lowerINSERT_SUBVECTOR()
5442 MVT ExtVecVT = VecVT.changeVectorElementType(MVT::i8); in lowerINSERT_SUBVECTOR()
5449 return DAG.getSetCC(DL, VecVT, Vec, SplatZero, ISD::SETNE); in lowerINSERT_SUBVECTOR()
5459 if (OrigIdx == 0 && Vec.isUndef() && !VecVT.isFixedLengthVector()) in lowerINSERT_SUBVECTOR()
5461 MVT ContainerVT = VecVT; in lowerINSERT_SUBVECTOR()
5462 if (VecVT.isFixedLengthVector()) { in lowerINSERT_SUBVECTOR()
5463 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerINSERT_SUBVECTOR()
5469 if (OrigIdx == 0 && Vec.isUndef() && VecVT.isFixedLengthVector()) { in lowerINSERT_SUBVECTOR()
5470 SubVec = convertFromScalableVector(VecVT, SubVec, DAG, Subtarget); in lowerINSERT_SUBVECTOR()
5474 getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget).first; in lowerINSERT_SUBVECTOR()
5482 if (VecVT.isFixedLengthVector()) in lowerINSERT_SUBVECTOR()
5483 Slideup = convertFromScalableVector(VecVT, Slideup, DAG, Subtarget); in lowerINSERT_SUBVECTOR()
5490 VecVT, SubVecVT, OrigIdx, TRI); in lowerINSERT_SUBVECTOR()
5517 MVT InterSubVT = VecVT; in lowerINSERT_SUBVECTOR()
5520 if (VecVT.bitsGT(getLMUL1VT(VecVT))) { in lowerINSERT_SUBVECTOR()
5521 InterSubVT = getLMUL1VT(VecVT); in lowerINSERT_SUBVECTOR()
5533 std::tie(Mask, VL) = getDefaultScalableVLOps(VecVT, DL, DAG, Subtarget); in lowerINSERT_SUBVECTOR()
5549 if (VecVT.bitsGT(InterSubVT)) in lowerINSERT_SUBVECTOR()
5550 Slideup = DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VecVT, Vec, Slideup, in lowerINSERT_SUBVECTOR()
5562 MVT VecVT = Vec.getSimpleValueType(); in lowerEXTRACT_SUBVECTOR() local
5575 if (VecVT.getVectorMinNumElements() >= 8 && in lowerEXTRACT_SUBVECTOR()
5578 assert(VecVT.getVectorMinNumElements() % 8 == 0 && in lowerEXTRACT_SUBVECTOR()
5585 VecVT = MVT::getVectorVT(MVT::i8, VecVT.getVectorMinNumElements() / 8, in lowerEXTRACT_SUBVECTOR()
5586 VecVT.isScalableVector()); in lowerEXTRACT_SUBVECTOR()
5587 Vec = DAG.getBitcast(VecVT, Vec); in lowerEXTRACT_SUBVECTOR()
5596 MVT ExtVecVT = VecVT.changeVectorElementType(MVT::i8); in lowerEXTRACT_SUBVECTOR()
5616 MVT ContainerVT = VecVT; in lowerEXTRACT_SUBVECTOR()
5617 if (VecVT.isFixedLengthVector()) { in lowerEXTRACT_SUBVECTOR()
5618 ContainerVT = getContainerForFixedLengthVector(VecVT); in lowerEXTRACT_SUBVECTOR()
5622 getDefaultVLOps(VecVT, ContainerVT, DL, DAG, Subtarget).first; in lowerEXTRACT_SUBVECTOR()
5639 VecVT, SubVecVT, OrigIdx, TRI); in lowerEXTRACT_SUBVECTOR()
5653 MVT InterSubVT = VecVT; in lowerEXTRACT_SUBVECTOR()
5654 if (VecVT.bitsGT(getLMUL1VT(VecVT))) { in lowerEXTRACT_SUBVECTOR()
5655 InterSubVT = getLMUL1VT(VecVT); in lowerEXTRACT_SUBVECTOR()
5717 MVT VecVT = Op.getSimpleValueType(); in lowerVECTOR_REVERSE() local
5718 if (VecVT.getVectorElementType() == MVT::i1) { in lowerVECTOR_REVERSE()
5719 MVT WidenVT = MVT::getVectorVT(MVT::i8, VecVT.getVectorElementCount()); in lowerVECTOR_REVERSE()
5722 return DAG.getNode(ISD::TRUNCATE, DL, VecVT, Op2); in lowerVECTOR_REVERSE()
5724 unsigned EltSize = VecVT.getScalarSizeInBits(); in lowerVECTOR_REVERSE()
5725 unsigned MinSize = VecVT.getSizeInBits().getKnownMinValue(); in lowerVECTOR_REVERSE()
5731 MVT IntVT = VecVT.changeVectorElementTypeToInteger(); in lowerVECTOR_REVERSE()
5746 std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(VecVT); in lowerVECTOR_REVERSE()
5752 DAG.getNode(ISD::INSERT_SUBVECTOR, DL, VecVT, DAG.getUNDEF(VecVT), Hi, in lowerVECTOR_REVERSE()
5755 ISD::INSERT_SUBVECTOR, DL, VecVT, Res, Lo, in lowerVECTOR_REVERSE()
5760 IntVT = MVT::getVectorVT(MVT::i16, VecVT.getVectorElementCount()); in lowerVECTOR_REVERSE()
5766 std::tie(Mask, VL) = getDefaultScalableVLOps(VecVT, DL, DAG, Subtarget); in lowerVECTOR_REVERSE()
5769 unsigned MinElts = VecVT.getVectorMinNumElements(); in lowerVECTOR_REVERSE()
5789 return DAG.getNode(GatherOpc, DL, VecVT, Op.getOperand(0), Indices, Mask, in lowerVECTOR_REVERSE()
5790 DAG.getUNDEF(VecVT), VL); in lowerVECTOR_REVERSE()
5799 MVT VecVT = Op.getSimpleValueType(); in lowerVECTOR_SPLICE() local
5801 unsigned MinElts = VecVT.getVectorMinNumElements(); in lowerVECTOR_SPLICE()
5819 SDValue TrueMask = getAllOnesMask(VecVT, VLMax, DL, DAG); in lowerVECTOR_SPLICE()
5822 DAG.getNode(RISCVISD::VSLIDEDOWN_VL, DL, VecVT, DAG.getUNDEF(VecVT), V1, in lowerVECTOR_SPLICE()
5824 return DAG.getNode(RISCVISD::VSLIDEUP_VL, DL, VecVT, SlideDown, V2, UpOffset, in lowerVECTOR_SPLICE()
7225 MVT VecVT = Vec.getSimpleValueType(); in ReplaceNodeResults() local
7228 VecVT.getVectorElementType() == MVT::i64 && in ReplaceNodeResults()
7232 MVT ContainerVT = VecVT; in ReplaceNodeResults()
7233 if (VecVT.isFixedLengthVector()) { in ReplaceNodeResults()
7234 ContainerVT = getContainerForFixedLengthVector(VecVT); in ReplaceNodeResults()
7354 MVT VecVT = Vec.getSimpleValueType(); in ReplaceNodeResults() local
7362 SDValue Mask = getAllOnesMask(VecVT, VL, DL, DAG); in ReplaceNodeResults()
7365 DAG.getNode(RISCVISD::VMV_V_X_VL, DL, VecVT, DAG.getUNDEF(VecVT), in ReplaceNodeResults()
7368 DAG.getNode(RISCVISD::SRL_VL, DL, VecVT, Vec, ThirtyTwoV, Mask, VL); in ReplaceNodeResults()
9293 MVT VecVT = Src.getSimpleValueType(); in PerformDAGCombine() local
9296 if (MemVT == VecVT.getVectorElementType()) { in PerformDAGCombine()
9298 MVT MaskVT = getMaskTypeFor(VecVT); in PerformDAGCombine()