@@ -897,8 +897,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
897897 unsigned Opcode, Type *Ty, TTI::TargetCostKind CostKind,
898898 TTI::OperandValueInfo Opd1Info = {TTI::OK_AnyValue, TTI::OP_None},
899899 TTI::OperandValueInfo Opd2Info = {TTI::OK_AnyValue, TTI::OP_None},
900- ArrayRef<const Value *> Args = std::nullopt ,
901- const Instruction *CxtI = nullptr ) {
900+ ArrayRef<const Value *> Args = {}, const Instruction *CxtI = nullptr ) {
902901 // Check if any of the operands are vector operands.
903902 const TargetLoweringBase *TLI = getTLI ();
904903 int ISD = TLI->InstructionOpcodeToISD (Opcode);
@@ -1023,7 +1022,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
10231022 ArrayRef<int > Mask,
10241023 TTI::TargetCostKind CostKind, int Index,
10251024 VectorType *SubTp,
1026- ArrayRef<const Value *> Args = std:: nullopt ,
1025+ ArrayRef<const Value *> Args = {} ,
10271026 const Instruction *CxtI = nullptr ) {
10281027 switch (improveShuffleKindFromMask (Kind, Mask, Tp, Index, SubTp)) {
10291028 case TTI::SK_Broadcast:
@@ -1657,9 +1656,9 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
16571656 if (isa<ScalableVectorType>(RetTy))
16581657 return BaseT::getIntrinsicInstrCost (ICA, CostKind);
16591658 unsigned Index = cast<ConstantInt>(Args[1 ])->getZExtValue ();
1660- return thisT ()->getShuffleCost (
1661- TTI::SK_ExtractSubvector, cast<VectorType>(Args[0 ]->getType ()),
1662- std:: nullopt , CostKind, Index, cast<VectorType>(RetTy));
1659+ return thisT ()->getShuffleCost (TTI::SK_ExtractSubvector,
1660+ cast<VectorType>(Args[0 ]->getType ()), {} ,
1661+ CostKind, Index, cast<VectorType>(RetTy));
16631662 }
16641663 case Intrinsic::vector_insert: {
16651664 // FIXME: Handle case where a scalable vector is inserted into a scalable
@@ -1668,19 +1667,19 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
16681667 return BaseT::getIntrinsicInstrCost (ICA, CostKind);
16691668 unsigned Index = cast<ConstantInt>(Args[2 ])->getZExtValue ();
16701669 return thisT ()->getShuffleCost (
1671- TTI::SK_InsertSubvector, cast<VectorType>(Args[0 ]->getType ()),
1672- std:: nullopt , CostKind, Index, cast<VectorType>(Args[1 ]->getType ()));
1670+ TTI::SK_InsertSubvector, cast<VectorType>(Args[0 ]->getType ()), {},
1671+ CostKind, Index, cast<VectorType>(Args[1 ]->getType ()));
16731672 }
16741673 case Intrinsic::vector_reverse: {
1675- return thisT ()->getShuffleCost (
1676- TTI::SK_Reverse, cast<VectorType>(Args[0 ]->getType ()), std:: nullopt ,
1677- CostKind, 0 , cast<VectorType>(RetTy));
1674+ return thisT ()->getShuffleCost (TTI::SK_Reverse,
1675+ cast<VectorType>(Args[0 ]->getType ()), {} ,
1676+ CostKind, 0 , cast<VectorType>(RetTy));
16781677 }
16791678 case Intrinsic::vector_splice: {
16801679 unsigned Index = cast<ConstantInt>(Args[2 ])->getZExtValue ();
1681- return thisT ()->getShuffleCost (
1682- TTI::SK_Splice, cast<VectorType>(Args[0 ]->getType ()), std:: nullopt ,
1683- CostKind, Index, cast<VectorType>(RetTy));
1680+ return thisT ()->getShuffleCost (TTI::SK_Splice,
1681+ cast<VectorType>(Args[0 ]->getType ()), {} ,
1682+ CostKind, Index, cast<VectorType>(RetTy));
16841683 }
16851684 case Intrinsic::vector_reduce_add:
16861685 case Intrinsic::vector_reduce_mul:
@@ -2600,9 +2599,8 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
26002599 while (NumVecElts > MVTLen) {
26012600 NumVecElts /= 2 ;
26022601 VectorType *SubTy = FixedVectorType::get (ScalarTy, NumVecElts);
2603- ShuffleCost +=
2604- thisT ()->getShuffleCost (TTI::SK_ExtractSubvector, Ty, std::nullopt ,
2605- CostKind, NumVecElts, SubTy);
2602+ ShuffleCost += thisT ()->getShuffleCost (TTI::SK_ExtractSubvector, Ty, {},
2603+ CostKind, NumVecElts, SubTy);
26062604 ArithCost += thisT ()->getArithmeticInstrCost (Opcode, SubTy, CostKind);
26072605 Ty = SubTy;
26082606 ++LongVectorCount;
@@ -2618,7 +2616,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
26182616 // By default reductions need one shuffle per reduction level.
26192617 ShuffleCost +=
26202618 NumReduxLevels * thisT ()->getShuffleCost (TTI::SK_PermuteSingleSrc, Ty,
2621- std:: nullopt , CostKind, 0 , Ty);
2619+ {} , CostKind, 0 , Ty);
26222620 ArithCost +=
26232621 NumReduxLevels * thisT ()->getArithmeticInstrCost (Opcode, Ty, CostKind);
26242622 return ShuffleCost + ArithCost +
@@ -2691,9 +2689,8 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
26912689 NumVecElts /= 2 ;
26922690 auto *SubTy = FixedVectorType::get (ScalarTy, NumVecElts);
26932691
2694- ShuffleCost +=
2695- thisT ()->getShuffleCost (TTI::SK_ExtractSubvector, Ty, std::nullopt ,
2696- CostKind, NumVecElts, SubTy);
2692+ ShuffleCost += thisT ()->getShuffleCost (TTI::SK_ExtractSubvector, Ty, {},
2693+ CostKind, NumVecElts, SubTy);
26972694
26982695 IntrinsicCostAttributes Attrs (IID, SubTy, {SubTy, SubTy}, FMF);
26992696 MinMaxCost += getIntrinsicInstrCost (Attrs, CostKind);
@@ -2709,7 +2706,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
27092706 // architecture-dependent length.
27102707 ShuffleCost +=
27112708 NumReduxLevels * thisT ()->getShuffleCost (TTI::SK_PermuteSingleSrc, Ty,
2712- std:: nullopt , CostKind, 0 , Ty);
2709+ {} , CostKind, 0 , Ty);
27132710 IntrinsicCostAttributes Attrs (IID, Ty, {Ty, Ty}, FMF);
27142711 MinMaxCost += NumReduxLevels * getIntrinsicInstrCost (Attrs, CostKind);
27152712 // The last min/max should be in vector registers and we counted it above.
0 commit comments