Lines Matching refs:ST
108 if (ST->hasMVEIntegerOps()) in getPreferredAddressingMode()
114 if (ST->isMClass() && ST->isThumb2() && in getPreferredAddressingMode()
307 if (!ST->isThumb()) { in getIntImmCost()
312 return ST->hasV6T2Ops() ? 2 : 3; in getIntImmCost()
314 if (ST->isThumb2()) { in getIntImmCost()
319 return ST->hasV6T2Ops() ? 2 : 3; in getIntImmCost()
424 if (ST->isThumb2() && NegImm < 1<<12) in getIntImmCostInst()
427 if (ST->isThumb() && NegImm < 1<<8) in getIntImmCostInst()
438 if (Inst && ((ST->hasV6Ops() && !ST->isThumb()) || ST->isThumb2()) && in getIntImmCostInst()
446 if (Inst && ST->hasVFP2Base() && isFPSatMinMaxPattern(Inst, Imm)) in getIntImmCostInst()
464 (ST->hasNEON() || ST->hasMVEIntegerOps())) { in getCFInstrCost()
490 return (EltVT == MVT::f32 && ST->hasVFP2Base()) || in getCastInstrCost()
491 (EltVT == MVT::f64 && ST->hasFP64()) || in getCastInstrCost()
492 (EltVT == MVT::f16 && ST->hasFullFP16()); in getCastInstrCost()
505 if ((ST->hasMVEIntegerOps() && in getCastInstrCost()
508 (ST->hasMVEFloatOps() && in getCastInstrCost()
513 ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
553 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
557 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
565 if (SrcTy.isVector() && ST->hasMVEFloatOps()) { in getCastInstrCost()
569 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
582 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
586 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
593 if (SrcTy.isVector() && ST->hasMVEFloatOps()) { in getCastInstrCost()
597 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
603 I && I->hasOneUse() && ST->hasNEON() && SrcTy.isVector()) { in getCastInstrCost()
629 if (Src->isVectorTy() && ST->hasNEON() && in getCastInstrCost()
731 if (SrcTy.isVector() && ST->hasNEON()) { in getCastInstrCost()
761 if (SrcTy.isFloatingPoint() && ST->hasNEON()) { in getCastInstrCost()
792 if (SrcTy.isInteger() && ST->hasNEON()) { in getCastInstrCost()
817 if (SrcTy.isVector() && ST->hasMVEIntegerOps()) { in getCastInstrCost()
821 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind); in getCastInstrCost()
840 if (ISD == ISD::TRUNCATE && ST->hasMVEIntegerOps() && in getCastInstrCost()
871 int BaseCost = ST->hasMVEIntegerOps() && Src->isVectorTy() in getCastInstrCost()
872 ? ST->getMVEVectorCostFactor(CostKind) in getCastInstrCost()
884 if (ST->hasSlowLoadDSubregister() && Opcode == Instruction::InsertElement && in getVectorInstrCost()
888 if (ST->hasNEON() && (Opcode == Instruction::InsertElement || in getVectorInstrCost()
904 if (ST->hasMVEIntegerOps() && (Opcode == Instruction::InsertElement || in getVectorInstrCost()
926 ST->isThumb() && !ValTy->isVectorTy()) { in getCmpSelInstrCost()
995 if (ST->hasNEON() && ValTy->isVectorTy() && ISD == ISD::SELECT && CondTy) { in getCmpSelInstrCost()
1016 if (ST->hasMVEIntegerOps() && ValTy->isVectorTy() && in getCmpSelInstrCost()
1025 if (Opcode == Instruction::FCmp && !ST->hasMVEFloatOps()) { in getCmpSelInstrCost()
1039 int BaseCost = ST->getMVEVectorCostFactor(CostKind); in getCmpSelInstrCost()
1057 if (ST->hasMVEIntegerOps() && ValTy->isVectorTy()) in getCmpSelInstrCost()
1058 BaseCost = ST->getMVEVectorCostFactor(CostKind); in getCmpSelInstrCost()
1074 if (ST->hasNEON()) { in getAddressComputationCost()
1104 if (!EnableMaskedLoadStores || !ST->hasMVEIntegerOps()) in isLegalMaskedLoad()
1124 if (!EnableMaskedGatherScatters || !ST->hasMVEIntegerOps()) in isLegalMaskedGather()
1217 if (ST->hasNEON()) { in getShuffleCost()
1284 if (ST->hasMVEIntegerOps()) { in getShuffleCost()
1298 ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput); in getShuffleCost()
1307 return ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput) * LT.first; in getShuffleCost()
1311 int BaseCost = ST->hasMVEIntegerOps() && Tp->isVectorTy() in getShuffleCost()
1312 ? ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput) in getShuffleCost()
1324 if (ST->isThumb() && CostKind == TTI::TCK_CodeSize && Ty->isIntegerTy(1)) { in getArithmeticInstrCost()
1341 if (ST->hasNEON()) { in getArithmeticInstrCost()
1407 if (ST->isThumb1Only() || Ty->isVectorTy()) in getArithmeticInstrCost()
1434 if (ST->hasMVEIntegerOps() && Ty->isVectorTy()) in getArithmeticInstrCost()
1435 BaseCost = ST->getMVEVectorCostFactor(CostKind); in getArithmeticInstrCost()
1474 if (ST->hasNEON() && Src->isVectorTy() && in getMemoryOpCost()
1485 if (ST->hasMVEFloatOps() && isa<FixedVectorType>(Src) && I && in getMemoryOpCost()
1496 return ST->getMVEVectorCostFactor(CostKind); in getMemoryOpCost()
1499 int BaseCost = ST->hasMVEIntegerOps() && Src->isVectorTy() in getMemoryOpCost()
1500 ? ST->getMVEVectorCostFactor(CostKind) in getMemoryOpCost()
1510 if (ST->hasMVEIntegerOps()) { in getMaskedMemoryOpCost()
1512 return ST->getMVEVectorCostFactor(CostKind); in getMaskedMemoryOpCost()
1514 return ST->getMVEVectorCostFactor(CostKind); in getMaskedMemoryOpCost()
1544 ST->hasMVEIntegerOps() ? ST->getMVEVectorCostFactor(CostKind) : 1; in getInterleavedMemoryOpCost()
1554 if (ST->hasMVEIntegerOps() && Factor == 2 && NumElts / Factor > 2 && in getInterleavedMemoryOpCost()
1569 if (!ST->hasMVEIntegerOps() || !EnableMaskedGatherScatters) in getGatherScatterOpCost()
1588 NumElems * LT.first * ST->getMVEVectorCostFactor(CostKind); in getGatherScatterOpCost()
1682 ((EltSize == 32 && ST->hasVFP2Base()) || in getArithmeticReductionCost()
1683 (EltSize == 64 && ST->hasFP64()) || in getArithmeticReductionCost()
1684 (EltSize == 16 && ST->hasFullFP16()))) { in getArithmeticReductionCost()
1686 unsigned VecLimit = ST->hasMVEFloatOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getArithmeticReductionCost()
1698 if (!TTI::requiresOrderedReduction(FMF) && ST->hasMVEFloatOps() && in getArithmeticReductionCost()
1700 VecCost += ST->getMVEVectorCostFactor(CostKind) * 2; in getArithmeticReductionCost()
1714 ST->hasMVEIntegerOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getArithmeticReductionCost()
1723 if (ST->hasMVEIntegerOps() && ValVT.getScalarSizeInBits() <= 16 && in getArithmeticReductionCost()
1726 VecCost += ST->getMVEVectorCostFactor(CostKind) + in getArithmeticReductionCost()
1738 if (!ST->hasMVEIntegerOps() || !ValVT.isSimple() || ISD != ISD::ADD || in getArithmeticReductionCost()
1750 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind) * LT.first; in getArithmeticReductionCost()
1765 if (ST->hasMVEIntegerOps() && ValVT.isSimple() && ResVT.isSimple()) { in getExtendedReductionCost()
1779 return ST->getMVEVectorCostFactor(CostKind) * LT.first; in getExtendedReductionCost()
1796 if (ST->hasMVEIntegerOps() && ValVT.isSimple() && ResVT.isSimple()) { in getMulAccReductionCost()
1810 return ST->getMVEVectorCostFactor(CostKind) * LT.first; in getMulAccReductionCost()
1826 ((ValVT.getVectorElementType() == MVT::f32 && ST->hasVFP2Base()) || in getMinMaxReductionCost()
1827 (ValVT.getVectorElementType() == MVT::f64 && ST->hasFP64()) || in getMinMaxReductionCost()
1828 (ValVT.getVectorElementType() == MVT::f16 && ST->hasFullFP16()))) { in getMinMaxReductionCost()
1831 unsigned VecLimit = ST->hasMVEFloatOps() ? 128 : (ST->hasNEON() ? 64 : -1); in getMinMaxReductionCost()
1843 if (ST->hasMVEFloatOps() && ValVT.getVectorElementType() == MVT::f16 && in getMinMaxReductionCost()
1845 VecCost += ST->getMVEVectorCostFactor(CostKind) * 2; in getMinMaxReductionCost()
1870 return Entry->Cost * ST->getMVEVectorCostFactor(CostKind) * LT.first; in getMinMaxReductionCost()
1888 if (ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1895 if (!ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1906 return LT.first * ST->getMVEVectorCostFactor(CostKind) * Instrs; in getIntrinsicInstrCost()
1915 if (!ST->hasMVEIntegerOps()) in getIntrinsicInstrCost()
1922 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1927 if (!ST->hasMVEFloatOps()) in getIntrinsicInstrCost()
1932 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1943 if ((ST->hasVFP2Base() && LT.second == MVT::f32 && MTy == MVT::i32) || in getIntrinsicInstrCost()
1944 (ST->hasFP64() && LT.second == MVT::f64 && MTy == MVT::i32) || in getIntrinsicInstrCost()
1945 (ST->hasFullFP16() && LT.second == MVT::f16 && MTy == MVT::i32)) in getIntrinsicInstrCost()
1949 if (ST->hasMVEFloatOps() && in getIntrinsicInstrCost()
1952 return LT.first * ST->getMVEVectorCostFactor(CostKind); in getIntrinsicInstrCost()
1955 if (((ST->hasVFP2Base() && LT.second == MVT::f32) || in getIntrinsicInstrCost()
1956 (ST->hasFP64() && LT.second == MVT::f64) || in getIntrinsicInstrCost()
1957 (ST->hasFullFP16() && LT.second == MVT::f16) || in getIntrinsicInstrCost()
1958 (ST->hasMVEFloatOps() && in getIntrinsicInstrCost()
1964 LT.second.isVector() ? ST->getMVEVectorCostFactor(CostKind) : 1; in getIntrinsicInstrCost()
2016 if (F->getReturnType()->isDoubleTy() && !ST->hasFP64()) in isLoweredToCall()
2018 if (F->getReturnType()->isHalfTy() && !ST->hasFullFP16()) in isLoweredToCall()
2023 return !ST->hasFPARMv8Base() && !ST->hasVFP2Base(); in isLoweredToCall()
2028 return !ST->hasMVEIntegerOps(); in isLoweredToCall()
2077 return !ST->hasFPARMv8Base(); in maybeLoweredToCall()
2120 if (I.getType()->isDoubleTy() && !ST->hasFP64()) in maybeLoweredToCall()
2124 if (I.getType()->isHalfTy() && !ST->hasFullFP16()) in maybeLoweredToCall()
2136 if (!ST->hasLOB() || DisableLowOverheadLoops) { in isHardwareLoopProfitable()
2375 if (!ST->hasMVEIntegerOps()) in preferPredicateOverEpilogue()
2421 if (!ST->hasMVEIntegerOps() || !EnableTailPredication) in getPreferredTailFoldingStyle()
2437 !ST->hasMVEIntegerOps() || !any_of(*L->getHeader(), [](Instruction &I) { in getUnrollingPreferences()
2444 if (!ST->isMClass()) in getUnrollingPreferences()
2466 if (ST->hasBranchPredictor() && L->getNumBlocks() > 4) in getUnrollingPreferences()
2504 if (ST->isThumb1Only()) { in getUnrollingPreferences()
2546 if (!ST->hasMVEIntegerOps()) in preferInLoopReduction()
2560 if (!ST->hasMVEIntegerOps()) in preferPredicatedReductionSelect()
2575 if (ST->hasFPAO()) in getScalingFactorCost()
2587 return ST->isThumb2() || ST->hasV8MBaselineOps(); in hasArmWideBranch()
2591 return ST->hasARMOps(); in hasArmWideBranch()