@@ -896,6 +896,10 @@ class TargetTransformInfo {
896896 bool isTargetIntrinsicWithScalarOpAtArg (Intrinsic::ID ID,
897897 unsigned ScalarOpdIdx) const ;
898898
899+ bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID,
900+ unsigned ScalarOpdIdx,
901+ bool Default) const ;
902+
899903 // / Estimate the overhead of scalarizing an instruction. Insert and Extract
900904 // / are set if the demanded result elements need to be inserted and/or
901905 // / extracted from vectors.
@@ -1969,6 +1973,9 @@ class TargetTransformInfo::Concept {
19691973 virtual bool isTargetIntrinsicTriviallyScalarizable (Intrinsic::ID ID) = 0;
19701974 virtual bool isTargetIntrinsicWithScalarOpAtArg (Intrinsic::ID ID,
19711975 unsigned ScalarOpdIdx) = 0;
1976+ virtual bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID,
1977+ unsigned ScalarOpdIdx,
1978+ bool Default) = 0;
19721979 virtual InstructionCost getScalarizationOverhead (VectorType *Ty,
19731980 const APInt &DemandedElts,
19741981 bool Insert, bool Extract,
@@ -2530,6 +2537,13 @@ class TargetTransformInfo::Model final : public TargetTransformInfo::Concept {
25302537 return Impl.isTargetIntrinsicWithScalarOpAtArg (ID, ScalarOpdIdx);
25312538 }
25322539
2540+ bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID,
2541+ unsigned ScalarOpdIdx,
2542+ bool Default) override {
2543+ return Impl.isVectorIntrinsicWithOverloadTypeAtArg (ID, ScalarOpdIdx,
2544+ Default);
2545+ }
2546+
25332547 InstructionCost getScalarizationOverhead (VectorType *Ty,
25342548 const APInt &DemandedElts,
25352549 bool Insert, bool Extract,
0 commit comments