Lines Matching refs:LT
205 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Ty); in getArithmeticInstrCost() local
210 if (ISD == ISD::MUL && Args.size() == 2 && LT.second.isVector() && in getArithmeticInstrCost()
211 LT.second.getScalarType() == MVT::i32) { in getArithmeticInstrCost()
235 LT.second = in getArithmeticInstrCost()
236 MVT::getVectorVT(MVT::i16, 2 * LT.second.getVectorNumElements()); in getArithmeticInstrCost()
303 LT.second)) in getArithmeticInstrCost()
304 return LT.first * Entry->Cost; in getArithmeticInstrCost()
330 if (Args.size() == 2 && ISD == ISD::MUL && LT.second == MVT::v4i32) { in getArithmeticInstrCost()
342 return LT.first * 3; // pmullw/sext in getArithmeticInstrCost()
344 return LT.first * 3; // pmullw/zext in getArithmeticInstrCost()
346 return LT.first * 5; // pmullw/pmulhw/pshuf in getArithmeticInstrCost()
348 return LT.first * 5; // pmullw/pmulhw/pshuf in getArithmeticInstrCost()
352 LT.second)) { in getArithmeticInstrCost()
353 return LT.first * Entry->Cost; in getArithmeticInstrCost()
366 LT.second)) in getArithmeticInstrCost()
367 return LT.first * Entry->Cost; in getArithmeticInstrCost()
388 LT.second)) in getArithmeticInstrCost()
389 return LT.first * Entry->Cost; in getArithmeticInstrCost()
408 LT.second)) in getArithmeticInstrCost()
409 return LT.first * Entry->Cost; in getArithmeticInstrCost()
435 CostTableLookup(SSE2UniformConstCostTable, ISD, LT.second)) in getArithmeticInstrCost()
436 return LT.first * Entry->Cost; in getArithmeticInstrCost()
454 CostTableLookup(AVX512BWConstCostTable, ISD, LT.second)) in getArithmeticInstrCost()
455 return LT.first * Entry->Cost; in getArithmeticInstrCost()
477 CostTableLookup(AVX512ConstCostTable, ISD, LT.second)) in getArithmeticInstrCost()
478 return LT.first * Entry->Cost; in getArithmeticInstrCost()
499 if (const auto *Entry = CostTableLookup(AVX2ConstCostTable, ISD, LT.second)) in getArithmeticInstrCost()
500 return LT.first * Entry->Cost; in getArithmeticInstrCost()
534 if (ISD == ISD::SDIV && LT.second == MVT::v8i32 && ST->hasAVX()) in getArithmeticInstrCost()
535 return LT.first * 32; in getArithmeticInstrCost()
536 if (ISD == ISD::SREM && LT.second == MVT::v8i32 && ST->hasAVX()) in getArithmeticInstrCost()
537 return LT.first * 38; in getArithmeticInstrCost()
538 if (ISD == ISD::SDIV && LT.second == MVT::v4i32 && ST->hasSSE41()) in getArithmeticInstrCost()
539 return LT.first * 15; in getArithmeticInstrCost()
540 if (ISD == ISD::SREM && LT.second == MVT::v4i32 && ST->hasSSE41()) in getArithmeticInstrCost()
541 return LT.first * 20; in getArithmeticInstrCost()
543 if (const auto *Entry = CostTableLookup(SSE2ConstCostTable, ISD, LT.second)) in getArithmeticInstrCost()
544 return LT.first * Entry->Cost; in getArithmeticInstrCost()
570 if (const auto *Entry = CostTableLookup(AVX512BWShiftCostTable, ISD, LT.second)) in getArithmeticInstrCost()
571 return LT.first * Entry->Cost; in getArithmeticInstrCost()
593 CostTableLookup(AVX2UniformCostTable, ISD, LT.second)) in getArithmeticInstrCost()
594 return LT.first * Entry->Cost; in getArithmeticInstrCost()
615 CostTableLookup(SSE2UniformCostTable, ISD, LT.second)) in getArithmeticInstrCost()
616 return LT.first * Entry->Cost; in getArithmeticInstrCost()
627 if (const auto *Entry = CostTableLookup(AVX512DQCostTable, ISD, LT.second)) in getArithmeticInstrCost()
628 return LT.first * Entry->Cost; in getArithmeticInstrCost()
638 if (const auto *Entry = CostTableLookup(AVX512BWCostTable, ISD, LT.second)) in getArithmeticInstrCost()
639 return LT.first * Entry->Cost; in getArithmeticInstrCost()
689 if (const auto *Entry = CostTableLookup(AVX512CostTable, ISD, LT.second)) in getArithmeticInstrCost()
690 return LT.first * Entry->Cost; in getArithmeticInstrCost()
708 if (ISD == ISD::SHL && LT.second == MVT::v32i16 && in getArithmeticInstrCost()
720 if (ST->hasAVX2() && !(ST->hasXOP() && LT.second == MVT::v4i32)) { in getArithmeticInstrCost()
721 if (ISD == ISD::SHL && LT.second == MVT::v16i16 && in getArithmeticInstrCost()
731 if (const auto *Entry = CostTableLookup(AVX2ShiftCostTable, ISD, LT.second)) in getArithmeticInstrCost()
732 return LT.first * Entry->Cost; in getArithmeticInstrCost()
774 CostTableLookup(XOPShiftCostTable, ShiftISD, LT.second)) in getArithmeticInstrCost()
775 return LT.first * Entry->Cost; in getArithmeticInstrCost()
799 if (ISD == ISD::SRA && LT.second == MVT::v4i64 && ST->hasAVX2()) in getArithmeticInstrCost()
800 return LT.first * 4; // 2*psrad + shuffle. in getArithmeticInstrCost()
803 CostTableLookup(SSE2UniformShiftCostTable, ISD, LT.second)) in getArithmeticInstrCost()
804 return LT.first * Entry->Cost; in getArithmeticInstrCost()
809 MVT VT = LT.second; in getArithmeticInstrCost()
875 if (const auto *Entry = CostTableLookup(AVX2CostTable, ISD, LT.second)) in getArithmeticInstrCost()
876 return LT.first * Entry->Cost; in getArithmeticInstrCost()
933 if (const auto *Entry = CostTableLookup(AVX1CostTable, ISD, LT.second)) in getArithmeticInstrCost()
934 return LT.first * Entry->Cost; in getArithmeticInstrCost()
961 if (const auto *Entry = CostTableLookup(SSE42CostTable, ISD, LT.second)) in getArithmeticInstrCost()
962 return LT.first * Entry->Cost; in getArithmeticInstrCost()
980 if (const auto *Entry = CostTableLookup(SSE41CostTable, ISD, LT.second)) in getArithmeticInstrCost()
981 return LT.first * Entry->Cost; in getArithmeticInstrCost()
1023 if (const auto *Entry = CostTableLookup(SSE2CostTable, ISD, LT.second)) in getArithmeticInstrCost()
1024 return LT.first * Entry->Cost; in getArithmeticInstrCost()
1041 if (const auto *Entry = CostTableLookup(SSE1CostTable, ISD, LT.second)) in getArithmeticInstrCost()
1042 return LT.first * Entry->Cost; in getArithmeticInstrCost()
1051 if (const auto *Entry = CostTableLookup(X64CostTbl, ISD, LT.second)) in getArithmeticInstrCost()
1052 return LT.first * Entry->Cost; in getArithmeticInstrCost()
1064 if (const auto *Entry = CostTableLookup(X86CostTbl, ISD, LT.second)) in getArithmeticInstrCost()
1065 return LT.first * Entry->Cost; in getArithmeticInstrCost()
1073 if (LT.second.isVector() && (ISD == ISD::SDIV || ISD == ISD::SREM || in getArithmeticInstrCost()
1078 return 20 * LT.first * LT.second.getVectorNumElements() * ScalarCost; in getArithmeticInstrCost()
1092 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, BaseTp); in getShuffleCost() local
1103 LT.first = 1; in getShuffleCost()
1107 if (Kind == TTI::SK_ExtractSubvector && LT.second.isVector()) { in getShuffleCost()
1108 int NumElts = LT.second.getVectorNumElements(); in getShuffleCost()
1126 LT.second.getVectorElementType() == in getShuffleCost()
1128 LT.second.getVectorElementType().getSizeInBits() == in getShuffleCost()
1133 LT.second.getVectorNumElements()); in getShuffleCost()
1156 if (Kind == TTI::SK_InsertSubvector && LT.second.isVector()) { in getShuffleCost()
1157 int NumElts = LT.second.getVectorNumElements(); in getShuffleCost()
1209 if (Kind == TTI::SK_PermuteSingleSrc && LT.first != 1) { in getShuffleCost()
1210 MVT LegalVT = LT.second; in getShuffleCost()
1222 InstructionCost NumOfDests = LT.first; in getShuffleCost()
1293 if (Kind == TTI::SK_PermuteTwoSrc && LT.first != 1) { in getShuffleCost()
1295 InstructionCost NumOfDests = LT.first; in getShuffleCost()
1296 InstructionCost NumOfShufflesPerDest = LT.first * 2 - 1; in getShuffleCost()
1297 LT.first = NumOfDests * NumOfShufflesPerDest; in getShuffleCost()
1314 CostTableLookup(AVX512VBMIShuffleTbl, Kind, LT.second)) in getShuffleCost()
1315 return LT.first * Entry->Cost; in getShuffleCost()
1345 CostTableLookup(AVX512BWShuffleTbl, Kind, LT.second)) in getShuffleCost()
1346 return LT.first * Entry->Cost; in getShuffleCost()
1411 if (const auto *Entry = CostTableLookup(AVX512ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1412 return LT.first * Entry->Cost; in getShuffleCost()
1459 if (const auto *Entry = CostTableLookup(AVX2ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1460 return LT.first * Entry->Cost; in getShuffleCost()
1481 if (const auto *Entry = CostTableLookup(XOPShuffleTbl, Kind, LT.second)) in getShuffleCost()
1482 return LT.first * Entry->Cost; in getShuffleCost()
1536 if (const auto *Entry = CostTableLookup(AVX1ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1537 return LT.first * Entry->Cost; in getShuffleCost()
1550 if (const auto *Entry = CostTableLookup(SSE41ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1551 return LT.first * Entry->Cost; in getShuffleCost()
1576 if (const auto *Entry = CostTableLookup(SSSE3ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1577 return LT.first * Entry->Cost; in getShuffleCost()
1629 CostTableLookup(SSE3BroadcastLoadTbl, Kind, LT.second)) { in getShuffleCost()
1631 LT.second.getVectorElementCount()) && in getShuffleCost()
1633 return LT.first * Entry->Cost; in getShuffleCost()
1636 if (const auto *Entry = CostTableLookup(SSE2ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1637 return LT.first * Entry->Cost; in getShuffleCost()
1649 if (const auto *Entry = CostTableLookup(SSE1ShuffleTbl, Kind, LT.second)) in getShuffleCost()
1650 return LT.first * Entry->Cost; in getShuffleCost()
2633 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, ValTy); in getCmpSelInstrCost() local
2635 MVT MTy = LT.second; in getCmpSelInstrCost()
2814 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2818 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2822 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2826 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2830 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2834 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2838 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2842 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
2846 return LT.first * (ExtraCost + Entry->Cost); in getCmpSelInstrCost()
3398 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, OpTy); in getTypeBasedIntrinsicInstrCost() local
3399 MVT MTy = LT.second; in getTypeBasedIntrinsicInstrCost()
3415 return LT.first * Cost; in getTypeBasedIntrinsicInstrCost()
3433 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3437 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3441 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3445 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3449 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3453 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3457 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3461 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3465 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3469 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3473 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3477 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3481 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3485 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3489 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3494 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3497 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3503 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3506 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3512 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3515 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3531 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3534 return adjustTableCost(*Entry, LT.first, ICA.getFlags()); in getTypeBasedIntrinsicInstrCost()
3632 std::pair<InstructionCost, MVT> LT = in getIntrinsicInstrCost() local
3634 MVT MTy = LT.second; in getIntrinsicInstrCost()
3639 return LT.first * Entry->Cost; in getIntrinsicInstrCost()
3643 return LT.first * Entry->Cost; in getIntrinsicInstrCost()
3647 return LT.first * Entry->Cost; in getIntrinsicInstrCost()
3651 return LT.first * Entry->Cost; in getIntrinsicInstrCost()
3654 return LT.first * Entry->Cost; in getIntrinsicInstrCost()
3712 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Val); in getVectorInstrCost() local
3715 if (!LT.second.isVector()) in getVectorInstrCost()
3719 unsigned SizeInBits = LT.second.getSizeInBits(); in getVectorInstrCost()
3720 unsigned NumElts = LT.second.getVectorNumElements(); in getVectorInstrCost()
3750 MVT MScalarTy = LT.second.getScalarType(); in getVectorInstrCost()
3800 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Ty); in getScalarizationOverhead() local
3801 MVT MScalarTy = LT.second.getScalarType(); in getScalarizationOverhead()
3802 unsigned SizeInBits = LT.second.getSizeInBits(); in getScalarizationOverhead()
3830 const int CostValue = *LT.first.getValue(); in getScalarizationOverhead()
3833 unsigned NumElts = LT.second.getVectorNumElements() * CostValue; in getScalarizationOverhead()
3843 I % LT.second.getVectorNumElements() != 0); in getScalarizationOverhead()
3857 } else if (LT.second.isVector()) { in getScalarizationOverhead()
3868 unsigned NumElts = LT.second.getVectorNumElements(); in getScalarizationOverhead()
3871 Cost += (std::min<unsigned>(NumElts, Pow2Elts) - 1) * LT.first; in getScalarizationOverhead()
3886 if (LT.second.isVector()) { in getScalarizationOverhead()
3887 int CostValue = *LT.first.getValue(); in getScalarizationOverhead()
3890 unsigned NumElts = LT.second.getVectorNumElements() * CostValue; in getScalarizationOverhead()
4067 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Src); in getMemoryOpCost() local
4073 if (!VTy || !LT.second.isVector()) in getMemoryOpCost()
4075 return LT.first * 1; in getMemoryOpCost()
4093 const int MaxLegalOpSizeBytes = divideCeil(LT.second.getSizeInBits(), 8); in getMemoryOpCost()
4148 bool Is0thSubVec = (NumEltDone() % LT.second.getVectorNumElements()) == 0; in getMemoryOpCost()
4230 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, SrcVTy); in getMaskedMemoryOpCost() local
4233 if (VT.isSimple() && LT.second != VT.getSimpleVT() && in getMaskedMemoryOpCost()
4234 LT.second.getVectorNumElements() == NumElem) in getMaskedMemoryOpCost()
4239 else if (LT.first * LT.second.getVectorNumElements() > NumElem) { in getMaskedMemoryOpCost()
4241 LT.second.getVectorNumElements()); in getMaskedMemoryOpCost()
4248 return Cost + LT.first * (IsLoad ? 2 : 8); in getMaskedMemoryOpCost()
4251 return Cost + LT.first; in getMaskedMemoryOpCost()
4346 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, ValTy); in getArithmeticReductionCost() local
4348 MVT MTy = LT.second; in getArithmeticReductionCost()
4363 if (LT.first != 1 && MTy.isVector() && in getArithmeticReductionCost()
4369 ArithmeticCost *= LT.first - 1; in getArithmeticReductionCost()
4433 if (LT.first != 1 && MTy.isVector() && in getArithmeticReductionCost()
4439 ArithmeticCost *= LT.first - 1; in getArithmeticReductionCost()
4469 if (LT.first != 1 && MTy.isVector() && in getArithmeticReductionCost()
4475 ReductionCost *= LT.first - 1; in getArithmeticReductionCost()
4534 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Ty); in getMinMaxCost() local
4536 MVT MTy = LT.second; in getMinMaxCost()
4611 return LT.first * Entry->Cost; in getMinMaxCost()
4615 return LT.first * Entry->Cost; in getMinMaxCost()
4619 return LT.first * Entry->Cost; in getMinMaxCost()
4623 return LT.first * Entry->Cost; in getMinMaxCost()
4627 return LT.first * Entry->Cost; in getMinMaxCost()
4631 return LT.first * Entry->Cost; in getMinMaxCost()
4635 return LT.first * Entry->Cost; in getMinMaxCost()
4639 return LT.first * Entry->Cost; in getMinMaxCost()
4664 std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, ValTy); in getMinMaxReductionCost() local
4666 MVT MTy = LT.second; in getMinMaxReductionCost()
4745 if (LT.first != 1 && MTy.isVector() && in getMinMaxReductionCost()
4753 MinMaxCost *= LT.first - 1; in getMinMaxReductionCost()