Lines Matching defs:LT

268   std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Ty);
273 if (ISD == ISD::MUL && Args.size() == 2 && LT.second.isVector() &&
274 (LT.second.getScalarType() == MVT::i32 ||
275 LT.second.getScalarType() == MVT::i64)) {
287 LT.second.getScalarType() == MVT::i32) {
301 LT.second =
302 MVT::getVectorVT(MVT::i16, 2 * LT.second.getVectorNumElements());
308 if (ST->useSLMArithCosts() && LT.second == MVT::v4i32) {
310 return LT.first * 3; // pmullw/sext
312 return LT.first * 3; // pmullw/zext
314 return LT.first * 5; // pmullw/pmulhw/pshuf
316 return LT.first * 5; // pmullw/pmulhw/pshuf
322 if (!SignedMode && OpMinSize <= 32 && LT.second.getScalarType() == MVT::i64)
388 CostTableLookup(GFNIUniformConstCostTable, ISD, LT.second))
390 return LT.first * *KindCost;
413 CostTableLookup(AVX512BWUniformConstCostTable, ISD, LT.second))
415 return LT.first * *KindCost;
449 CostTableLookup(AVX512UniformConstCostTable, ISD, LT.second))
451 return LT.first * *KindCost;
490 CostTableLookup(AVX2UniformConstCostTable, ISD, LT.second))
492 return LT.first * *KindCost;
531 (!ST->hasXOP() || LT.second.getScalarSizeInBits() != 8))
533 CostTableLookup(AVXUniformConstCostTable, ISD, LT.second))
535 return LT.first * *KindCost;
562 (!ST->hasXOP() || LT.second.getScalarSizeInBits() != 8))
564 CostTableLookup(SSE2UniformConstCostTable, ISD, LT.second))
566 return LT.first * *KindCost;
582 CostTableLookup(AVX512BWConstCostTable, ISD, LT.second))
584 return LT.first * *KindCost;
605 CostTableLookup(AVX512ConstCostTable, ISD, LT.second))
607 return LT.first * *KindCost;
627 if (const auto *Entry = CostTableLookup(AVX2ConstCostTable, ISD, LT.second))
629 return LT.first * *KindCost;
649 if (const auto *Entry = CostTableLookup(AVXConstCostTable, ISD, LT.second))
651 return LT.first * *KindCost;
660 CostTableLookup(SSE41ConstCostTable, ISD, LT.second))
662 return LT.first * *KindCost;
682 if (const auto *Entry = CostTableLookup(SSE2ConstCostTable, ISD, LT.second))
684 return LT.first * *KindCost;
704 CostTableLookup(AVX512BWUniformCostTable, ISD, LT.second))
706 return LT.first * *KindCost;
728 CostTableLookup(AVX512UniformCostTable, ISD, LT.second))
730 return LT.first * *KindCost;
765 CostTableLookup(AVX2UniformCostTable, ISD, LT.second))
767 return LT.first * *KindCost;
801 (!ST->hasXOP() || LT.second.getScalarSizeInBits() != 8))
803 CostTableLookup(AVXUniformCostTable, ISD, LT.second))
805 return LT.first * *KindCost;
827 (!ST->hasXOP() || LT.second.getScalarSizeInBits() != 8))
829 CostTableLookup(SSE2UniformCostTable, ISD, LT.second))
831 return LT.first * *KindCost;
841 if (const auto *Entry = CostTableLookup(AVX512DQCostTable, ISD, LT.second))
843 return LT.first * *KindCost;
890 if (const auto *Entry = CostTableLookup(AVX512BWCostTable, ISD, LT.second))
892 return LT.first * *KindCost;
984 if (const auto *Entry = CostTableLookup(AVX512CostTable, ISD, LT.second))
986 return LT.first * *KindCost;
1004 if (ISD == ISD::SHL && LT.second == MVT::v32i16 && Op2Info.isConstant())
1012 if (ST->hasAVX2() && !(ST->hasXOP() && LT.second == MVT::v4i32)) {
1013 if (ISD == ISD::SHL && LT.second == MVT::v16i16 &&
1020 if (const auto *Entry = CostTableLookup(AVX2ShiftCostTable, ISD, LT.second))
1022 return LT.first * *KindCost;
1062 CostTableLookup(XOPShiftCostTable, ShiftISD, LT.second))
1064 return LT.first * *KindCost;
1068 MVT VT = LT.second;
1084 if (const auto *Entry = CostTableLookup(GLMCostTable, ISD, LT.second))
1086 return LT.first * *KindCost;
1113 if (const auto *Entry = CostTableLookup(SLMCostTable, ISD, LT.second))
1115 return LT.first * *KindCost;
1188 if (const auto *Entry = CostTableLookup(AVX2CostTable, ISD, LT.second))
1190 return LT.first * *KindCost;
1289 if (const auto *Entry = CostTableLookup(AVX1CostTable, ISD, LT.second))
1291 return LT.first * *KindCost;
1318 if (const auto *Entry = CostTableLookup(SSE42CostTable, ISD, LT.second))
1320 return LT.first * *KindCost;
1341 if (const auto *Entry = CostTableLookup(SSE41CostTable, ISD, LT.second))
1343 return LT.first * *KindCost;
1350 if (const auto *Entry = CostTableLookup(SSSE3CostTable, ISD, LT.second))
1352 return LT.first * *KindCost;
1420 if (const auto *Entry = CostTableLookup(SSE2CostTable, ISD, LT.second))
1422 return LT.first * *KindCost;
1442 if (const auto *Entry = CostTableLookup(SSE1CostTable, ISD, LT.second))
1444 return LT.first * *KindCost;
1453 if (const auto *Entry = CostTableLookup(X64CostTbl, ISD, LT.second))
1455 return LT.first * *KindCost;
1477 if (const auto *Entry = CostTableLookup(X86CostTbl, ISD, LT.second))
1479 return LT.first * *KindCost;
1487 if (CostKind == TTI::TCK_RecipThroughput && LT.second.isVector() &&
1493 return 20 * LT.first * LT.second.getVectorNumElements() * ScalarCost;
1507 return LT.first;
1532 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(BaseTp);
1552 LT.first = 1;
1558 (ST->hasAVX() && LT.second.getScalarSizeInBits() >= 32)))
1563 if (LT.second.isVector() && LT.second.getScalarType() == MVT::bf16)
1564 LT.second = LT.second.changeVectorElementType(MVT::f16);
1568 if (Kind == TTI::SK_ExtractSubvector && LT.second.isVector()) {
1569 int NumElts = LT.second.getVectorNumElements();
1586 LT.second.getVectorElementType() ==
1588 LT.second.getVectorElementType().getSizeInBits() ==
1593 LT.second.getVectorNumElements());
1619 if (Kind == TTI::SK_InsertSubvector && LT.second.isVector()) {
1620 int NumElts = LT.second.getVectorNumElements();
1676 if (Kind == TTI::SK_PermuteSingleSrc && LT.first != 1) {
1677 MVT LegalVT = LT.second;
1688 InstructionCost NumOfDests = LT.first;
1763 if (Kind == TTI::SK_PermuteTwoSrc && LT.first != 1) {
1765 InstructionCost NumOfDests = LT.first;
1766 InstructionCost NumOfShufflesPerDest = LT.first * 2 - 1;
1767 LT.first = NumOfDests * NumOfShufflesPerDest;
1784 CostTableLookup(AVX512VBMIShuffleTbl, Kind, LT.second))
1785 return LT.first * Entry->Cost;
1819 CostTableLookup(AVX512BWShuffleTbl, Kind, LT.second))
1820 return LT.first * Entry->Cost;
1897 if (const auto *Entry = CostTableLookup(AVX512ShuffleTbl, Kind, LT.second))
1899 return LT.first * *KindCost;
1952 if (const auto *Entry = CostTableLookup(AVX2ShuffleTbl, Kind, LT.second))
1953 return LT.first * Entry->Cost;
1974 if (const auto *Entry = CostTableLookup(XOPShuffleTbl, Kind, LT.second))
1975 return LT.first * Entry->Cost;
2037 if (const auto *Entry = CostTableLookup(AVX1ShuffleTbl, Kind, LT.second))
2038 return LT.first * Entry->Cost;
2051 if (const auto *Entry = CostTableLookup(SSE41ShuffleTbl, Kind, LT.second))
2052 return LT.first * Entry->Cost;
2083 if (const auto *Entry = CostTableLookup(SSSE3ShuffleTbl, Kind, LT.second))
2084 return LT.first * Entry->Cost;
2143 CostTableLookup(SSE3BroadcastLoadTbl, Kind, LT.second)) {
2145 LT.second.getVectorElementCount()) &&
2147 return LT.first * Entry->Cost;
2150 if (const auto *Entry = CostTableLookup(SSE2ShuffleTbl, Kind, LT.second))
2151 return LT.first * Entry->Cost;
2164 if (const auto *Entry = CostTableLookup(SSE1ShuffleTbl, Kind, LT.second))
2165 return LT.first * Entry->Cost;
3172 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(ValTy);
3174 MVT MTy = LT.second;
3403 return LT.first * (ExtraCost + *KindCost);
3408 return LT.first * (ExtraCost + *KindCost);
3413 return LT.first * (ExtraCost + *KindCost);
3418 return LT.first * (ExtraCost + *KindCost);
3423 return LT.first * (ExtraCost + *KindCost);
3428 return LT.first * (ExtraCost + *KindCost);
3433 return LT.first * (ExtraCost + *KindCost);
3438 return LT.first * (ExtraCost + *KindCost);
3443 return LT.first * (ExtraCost + *KindCost);
3448 return LT.first * (ExtraCost + *KindCost);
4297 std::pair<InstructionCost, MVT> LT,
4299 InstructionCost LegalizationCost = LT.first;
4300 MVT MTy = LT.second;
4328 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(OpTy);
4329 MVT MTy = LT.second;
4343 return LT.first;
4348 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4353 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4358 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4363 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4368 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4373 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4378 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4383 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4388 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4393 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4398 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4403 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4408 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4413 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4418 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4423 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4428 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4434 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4438 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4445 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4449 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4456 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4460 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4466 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4470 return adjustTableCost(Entry->ISD, *KindCost, LT, ICA.getFlags());
4527 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Val);
4530 if (!LT.second.isVector())
4534 unsigned SizeInBits = LT.second.getSizeInBits();
4535 unsigned NumElts = LT.second.getVectorNumElements();
4551 MVT MScalarTy = LT.second.getScalarType();
4630 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Ty);
4631 MVT MScalarTy = LT.second.getScalarType();
4632 unsigned LegalVectorBitWidth = LT.second.getSizeInBits();
4640 const int NumLegalVectors = *LT.first.getValue();
4671 LT.second.getVectorNumElements() * NumLegalVectors;
4713 } else if (LT.second.isVector()) {
4724 unsigned NumElts = LT.second.getVectorNumElements();
4727 Cost += (std::min<unsigned>(NumElts, Pow2Elts) - 1) * LT.first;
4742 if (LT.second.isVector()) {
4744 LT.second.getVectorNumElements() * NumLegalVectors;
4919 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(Src);
4932 if (!VTy || !LT.second.isVector()) {
4934 return (LT.second.isFloatingPoint() ? Cost : 0) + LT.first * 1;
4951 const int MaxLegalOpSizeBytes = divideCeil(LT.second.getSizeInBits(), 8);
5006 bool Is0thSubVec = (NumEltDone() % LT.second.getVectorNumElements()) == 0;
5093 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(SrcVTy);
5096 MVT Ty = LT.second;
5099 return Cost + LT.first;
5102 LT.second.getVectorNumElements() == NumElem)
5109 else if (LT.first * Ty.getVectorNumElements() > NumElem) {
5119 return Cost + LT.first * (IsLoad ? 2 : 8);
5122 return Cost + LT.first;
5237 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(ValTy);
5239 MVT MTy = LT.second;
5254 if (LT.first != 1 && MTy.isVector() &&
5256 // Type needs to be split. We need LT.first - 1 arithmetic ops.
5260 ArithmeticCost *= LT.first - 1;
5324 if (LT.first != 1 && MTy.isVector() &&
5326 // Type needs to be split. We need LT.first - 1 arithmetic ops.
5330 ArithmeticCost *= LT.first - 1;
5360 if (LT.first != 1 && MTy.isVector() &&
5362 // Type needs to be split. We need LT.first - 1 arithmetic ops.
5366 ReductionCost *= LT.first - 1;
5435 std::pair<InstructionCost, MVT> LT = getTypeLegalizationCost(ValTy);
5437 MVT MTy = LT.second;
5519 if (LT.first != 1 && MTy.isVector() &&
5521 // Type needs to be split. We need LT.first - 1 operations ops.
5525 MinMaxCost *= LT.first - 1;