Lines Matching refs:ST
108 if (ST->hasMVEIntegerOps()) in getPreferredAddressingMode()
114 if (ST->isMClass() && ST->isThumb2() && in getPreferredAddressingMode()
311 if (!ST->isThumb()) { in getIntImmCost()
316 return ST->hasV6T2Ops() ? 2 : 3; in getIntImmCost()
318 if (ST->isThumb2()) { in getIntImmCost()
323 return ST->hasV6T2Ops() ? 2 : 3; in getIntImmCost()
428 if (ST->isThumb2() && NegImm < 1<<12) in getIntImmCostInst()
431 if (ST->isThumb() && NegImm < 1<<8) in getIntImmCostInst()
442 if (Inst && ((ST->hasV6Ops() && !ST->isThumb()) || ST->isThumb2()) && in getIntImmCostInst()
450 if (Inst && ST->hasVFP2Base() && isFPSatMinMaxPattern(Inst, Imm)) in getIntImmCostInst()
468 (ST->hasNEON() || ST->hasMVEIntegerOps())) { in getCFInstrCost()
494 return (EltVT == MVT::f32 && ST->hasVFP2Base()) || in getCastInstrCost()
495 (EltVT == MVT::f64 && ST->hasFP64()) || in getCastInstrCost()
496 (EltVT == MVT::f16 && ST->hasFullFP16()); in getCastInstrCost()
509 if ((ST->hasMVEIntegerOps() && in getCastInstrCost()
512 (ST->hasMVEFloatOps() && in getCastInstrCost()
517 ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
557 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
561 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
569 if (SrcTy.isVector() && ST->hasMVEFloatOps()) { in getCastInstrCost()
573 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
586 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
590 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
597 if (SrcTy.isVector() && ST->hasMVEFloatOps()) { in getCastInstrCost()
601 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
607 I && I->hasOneUse() && ST->hasNEON() && SrcTy.isVector()) { in getCastInstrCost()
633 if (Src->isVectorTy() && ST->hasNEON() && in getCastInstrCost()
735 if (SrcTy.isVector() && ST->hasNEON()) { in getCastInstrCost()
765 if (SrcTy.isFloatingPoint() && ST->hasNEON()) { in getCastInstrCost()
796 if (SrcTy.isInteger() && ST->hasNEON()) { in getCastInstrCost()
821 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
825 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
844 if (ISD == ISD::TRUNCATE && ST->hasMVEIntegerOps() && in getCastInstrCost()
875 int BaseCost = ST->hasMVEIntegerOps() && Src->isVectorTy() in getCastInstrCost()
876 ? ST->getMVEVectorCostFactor(CostKind) in getCastInstrCost()
888 if (ST->hasSlowLoadDSubregister() && Opcode == Instruction::InsertElement && in getVectorInstrCost()
892 if (ST->hasNEON() && (Opcode == Instruction::InsertElement || in getVectorInstrCost()
908 if (ST->hasMVEIntegerOps() && (Opcode == Instruction::InsertElement || in getVectorInstrCost()
930 ST->isThumb() && !ValTy->isVectorTy()) { in getCmpSelInstrCost()
999 if (ST->hasNEON() && ValTy->isVectorTy() && ISD == ISD::SELECT && CondTy) { in getCmpSelInstrCost()
1020 if (ST->hasMVEIntegerOps() && ValTy->isVectorTy() && in getCmpSelInstrCost()
1029 if (Opcode == Instruction::FCmp && !ST->hasMVEFloatOps()) { in getCmpSelInstrCost()
1043 int BaseCost = ST->getMVEVectorCostFactor(CostKind); in getCmpSelInstrCost()
1061 if (ST->hasMVEIntegerOps() && ValTy->isVectorTy()) in getCmpSelInstrCost()
1062 BaseCost = ST->getMVEVectorCostFactor(CostKind); in getCmpSelInstrCost()
1078 if (ST->hasNEON()) { in getAddressComputationCost()
1108 if (!EnableMaskedLoadStores || !ST->hasMVEIntegerOps()) in isLegalMaskedLoad()
1128 if (!EnableMaskedGatherScatters || !ST->hasMVEIntegerOps()) in isLegalMaskedGather()
1226 if (ST->hasNEON()) { in getShuffleCost()
1293 if (ST->hasMVEIntegerOps()) { in getShuffleCost()
1307 ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput); in getShuffleCost()
1316 return ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput) * LT.first; in getShuffleCost()
1323 int BaseCost = ST->hasMVEIntegerOps() && Tp->isVectorTy() in getShuffleCost()
1324 ? ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput) in getShuffleCost()
1336 if (ST->isThumb() && CostKind == TTI::TCK_CodeSize && Ty->isIntegerTy(1)) { in getArithmeticInstrCost()
1353 if (ST->hasNEON()) { in getArithmeticInstrCost()
1419 if (ST->isThumb1Only() || Ty->isVectorTy()) in getArithmeticInstrCost()
1446 if (ST->hasMVEIntegerOps() && Ty->isVectorTy()) in getArithmeticInstrCost()
1447 BaseCost = ST->getMVEVectorCostFactor(CostKind); in getArithmeticInstrCost()
1486 if (ST->hasNEON() && Src->isVectorTy() && in getMemoryOpCost()
1497 if (ST->hasMVEFloatOps() && isa<FixedVectorType>(Src) && I && in getMemoryOpCost()
1508 return ST->getMVEVectorCostFactor(CostKind); in getMemoryOpCost()
1511 int BaseCost = ST->hasMVEIntegerOps() && Src->isVectorTy() in getMemoryOpCost()
1512 ? ST->getMVEVectorCostFactor(CostKind) in getMemoryOpCost()
1522 if (ST->hasMVEIntegerOps()) { in getMaskedMemoryOpCost()
1524 return ST->getMVEVectorCostFactor(CostKind); in getMaskedMemoryOpCost()
1526 return ST->getMVEVectorCostFactor(CostKind); in getMaskedMemoryOpCost()
1556 ST->hasMVEIntegerOps() ? ST->getMVEVectorCostFactor(CostKind) : 1; in getInterleavedMemoryOpCost()
1566 if (ST->hasMVEIntegerOps() && Factor == 2 && NumElts / Factor > 2 && in getInterleavedMemoryOpCost()
1581 if (!ST->hasMVEIntegerOps() || !EnableMaskedGatherScatters) in getGatherScatterOpCost()
1600 NumElems * LT.first * ST->getMVEVectorCostFactor(CostKind); in getGatherScatterOpCost()
1694 ((EltSize == 32 && ST->hasVFP2Base()) || in getArithmeticReductionCost()
1695 (EltSize == 64 && ST->hasFP64()) || in getArithmeticReductionCost()
1696 (EltSize == 16 && ST->hasFullFP16()))) { in getArithmeticReductionCost()
1698 unsigned VecLimit = ST->hasMVEFloatOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getArithmeticReductionCost()
1710 if (!TTI::requiresOrderedReduction(FMF) && ST->hasMVEFloatOps() && in getArithmeticReductionCost()
1712 VecCost += ST->getMVEVectorCostFactor(CostKind) * 2; in getArithmeticReductionCost()
1726 ST->hasMVEIntegerOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getArithmeticReductionCost()
1735 if (ST->hasMVEIntegerOps() && ValVT.getScalarSizeInBits() <= 16 && in getArithmeticReductionCost()
1738 VecCost += ST->getMVEVectorCostFactor(CostKind) + in getArithmeticReductionCost()
1750 if (!ST->hasMVEIntegerOps() || !ValVT.isSimple() || ISD != ISD::ADD || in getArithmeticReductionCost()
1762 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind) * LT.first; in getArithmeticReductionCost()
1777 if (ST->hasMVEIntegerOps() && ValVT.isSimple() && ResVT.isSimple()) { in getExtendedReductionCost()
1791 return ST->getMVEVectorCostFactor(CostKind) * LT.first; in getExtendedReductionCost()
1808 if (ST->hasMVEIntegerOps() && ValVT.isSimple() && ResVT.isSimple()) { in getMulAccReductionCost()
1822 return ST->getMVEVectorCostFactor(CostKind) * LT.first; in getMulAccReductionCost()
1838 ((ValVT.getVectorElementType() == MVT::f32 && ST->hasVFP2Base()) || in getMinMaxReductionCost()
1839 (ValVT.getVectorElementType() == MVT::f64 && ST->hasFP64()) || in getMinMaxReductionCost()
1840 (ValVT.getVectorElementType() == MVT::f16 && ST->hasFullFP16()))) { in getMinMaxReductionCost()
1843 unsigned VecLimit = ST->hasMVEFloatOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getMinMaxReductionCost()
1855 if (ST->hasMVEFloatOps() && ValVT.getVectorElementType() == MVT::f16 && in getMinMaxReductionCost()
1857 VecCost += ST->getMVEVectorCostFactor(CostKind) * 2; in getMinMaxReductionCost()
1882 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind) * LT.first; in getMinMaxReductionCost()
1900 if (ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1907 if (!ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1918 return LT.first * ST->getMVEVectorCostFactor(CostKind) * Instrs; in getIntrinsicInstrCost()
1927 if (!ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1934 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1939 if (!ST->hasMVEFloatOps()) in getIntrinsicInstrCost()
1944 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1955 if ((ST->hasVFP2Base() && LT.second == MVT::f32 && MTy == MVT::i32) || in getIntrinsicInstrCost()
1956 (ST->hasFP64() && LT.second == MVT::f64 && MTy == MVT::i32) || in getIntrinsicInstrCost()
1957 (ST->hasFullFP16() && LT.second == MVT::f16 && MTy == MVT::i32)) in getIntrinsicInstrCost()
1961 if (ST->hasMVEFloatOps() && in getIntrinsicInstrCost()
1964 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1967 if (((ST->hasVFP2Base() && LT.second == MVT::f32) || in getIntrinsicInstrCost()
1968 (ST->hasFP64() && LT.second == MVT::f64) || in getIntrinsicInstrCost()
1969 (ST->hasFullFP16() && LT.second == MVT::f16) || in getIntrinsicInstrCost()
1970 (ST->hasMVEFloatOps() && in getIntrinsicInstrCost()
1976 LT.second.isVector() ? ST->getMVEVectorCostFactor(CostKind) : 1; in getIntrinsicInstrCost()
2028 if (F->getReturnType()->isDoubleTy() && !ST->hasFP64()) in isLoweredToCall()
2030 if (F->getReturnType()->isHalfTy() && !ST->hasFullFP16()) in isLoweredToCall()
2035 return !ST->hasFPARMv8Base() && !ST->hasVFP2Base(); in isLoweredToCall()
2040 return !ST->hasMVEIntegerOps(); in isLoweredToCall()
2089 return !ST->hasFPARMv8Base(); in maybeLoweredToCall()
2132 if (I.getType()->isDoubleTy() && !ST->hasFP64()) in maybeLoweredToCall()
2136 if (I.getType()->isHalfTy() && !ST->hasFullFP16()) in maybeLoweredToCall()
2148 if (!ST->hasLOB() || DisableLowOverheadLoops) { in isHardwareLoopProfitable()
2387 if (!ST->hasMVEIntegerOps()) in preferPredicateOverEpilogue()
2433 if (!ST->hasMVEIntegerOps() || !EnableTailPredication) in getPreferredTailFoldingStyle()
2449 !ST->hasMVEIntegerOps() || !any_of(*L->getHeader(), [](Instruction &I) { in getUnrollingPreferences()
2456 if (!ST->isMClass()) in getUnrollingPreferences()
2478 if (ST->hasBranchPredictor() && L->getNumBlocks() > 4) in getUnrollingPreferences()
2516 if (ST->isThumb1Only()) { in getUnrollingPreferences()
2558 if (!ST->hasMVEIntegerOps()) in preferInLoopReduction()
2572 if (!ST->hasMVEIntegerOps()) in preferPredicatedReductionSelect()
2588 if (ST->hasFPAO()) in getScalingFactorCost()
2600 return ST->isThumb2() || ST->hasV8MBaselineOps(); in hasArmWideBranch()
2604 return ST->hasARMOps(); in hasArmWideBranch()