[llvm] Revert "[SLP] More accurately cost RISCV scalar splats" (PR #224426)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 17 14:02:58 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
@llvm/pr-subscribers-backend-powerpc
Author: Ryan Buchner (bababuck)
<details>
<summary>Changes</summary>
Reverts llvm/llvm-project#<!-- -->213104
---
Patch is 63.17 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/224426.diff
29 Files Affected:
- (modified) llvm/include/llvm/Analysis/TargetTransformInfo.h (+2-29)
- (modified) llvm/include/llvm/Analysis/TargetTransformInfoImpl.h (+5-14)
- (modified) llvm/include/llvm/CodeGen/BasicTTIImpl.h (+1-3)
- (modified) llvm/lib/Analysis/TargetTransformInfo.cpp (+3-18)
- (modified) llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp (+6-5)
- (modified) llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp (+7-5)
- (modified) llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (+7-5)
- (modified) llvm/lib/Target/ARM/ARMTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp (+6-5)
- (modified) llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp (+7-5)
- (modified) llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp (+6-42)
- (modified) llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h (+1-9)
- (modified) llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp (+6-5)
- (modified) llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp (+2-2)
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Target/X86/X86TargetTransformInfo.cpp (+7-5)
- (modified) llvm/lib/Target/X86/X86TargetTransformInfo.h (+1-3)
- (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (+55-133)
- (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp (+7-8)
- (modified) llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.h (+2-5)
- (modified) llvm/test/Transforms/SLPVectorizer/RISCV/check-node-without-vector-user.ll (+31-11)
- (modified) llvm/test/Transforms/SLPVectorizer/RISCV/folded-broadcast-cost.ll (+2-2)
- (modified) llvm/test/Transforms/SLPVectorizer/RISCV/remark-zext-incoming-for-neg-icmp.ll (+1-1)
- (modified) llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll (+4-4)
``````````diff
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h b/llvm/include/llvm/Analysis/TargetTransformInfo.h
index 0b183954198dd..f1731bc364555 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfo.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h
@@ -24,7 +24,6 @@
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
-#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/Uniformity.h"
#include "llvm/Analysis/IVDescriptors.h"
#include "llvm/Analysis/InterestingMemoryOperand.h"
@@ -191,8 +190,7 @@ enum class VectorInstrContext : uint8_t {
None, ///< The instruction is not folded.
Load, ///< The value being inserted comes from a load (InsertElement only).
Store, ///< The extracted value is stored (ExtractElement only).
- BinaryOp, ///< One of the operands is a binary op.
- SplatOpFolded, ///< All of the value's users support splatting the value.
+ BinaryOp, ///< One of the operands is a binary op.
};
class IntrinsicCostAttributes {
@@ -1074,34 +1072,10 @@ class TargetTransformInfo {
using VectorInstrContext = llvm::VectorInstrContext;
- /// Combines 2 context hints into a single value. If both are equal, keep the
- /// shared context, otherwise fall back to no specific context.
- LLVM_ABI static TargetTransformInfo::VectorInstrContext
- combineVectorInstrContexts(TargetTransformInfo::VectorInstrContext Ctx1,
- TargetTransformInfo::VectorInstrContext Ctx2);
-
- /// Stores information about the uses of a build vector
- struct BuildVectorUseOp {
- unsigned Opcode;
- int OperandIndex;
- BuildVectorUseOp(unsigned Opcode, int OperandIndex)
- : Opcode(Opcode), OperandIndex(OperandIndex) {}
- };
-
/// Calculates a VectorInstrContext from \p I.
LLVM_ABI static VectorInstrContext
getVectorInstrContextHint(const Instruction *I);
- /// Calculates a VectorInstrContext for buildvector-like gather sequences.
- ///
- /// \p GatherUserOps must collect all users of \p Scalars relevant for
- /// determining whether a splat can be folded as a scalar operand. It returns
- /// false if those users cannot be gathered in the required form.
- LLVM_ABI VectorInstrContext getBuildVectorContextHint(
- ArrayRef<int> Mask, ArrayRef<Value *> Scalars,
- function_ref<bool(SmallVectorImpl<BuildVectorUseOp> &)> GatherUseOps)
- const;
-
/// Estimate the overhead of scalarizing an instruction. Insert and Extract
/// are set if the demanded result elements need to be inserted and/or
/// extracted from vectors. The involved values may be passed in VL if
@@ -1588,8 +1562,7 @@ class TargetTransformInfo {
ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask = {}, int Index = 0,
VectorType *SubTp = nullptr, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC = TTI::VectorInstrContext::None) const;
+ const Instruction *CxtI = nullptr) const;
/// Represents a hint about the context in which a cast is used.
///
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
index 5103d3dce25b2..84cb3a6e664b9 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
@@ -773,12 +773,11 @@ class LLVM_ABI TargetTransformInfoImplBase {
return InstructionCost::getInvalid();
}
- virtual InstructionCost getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC = TTI::VectorInstrContext::None) const {
+ virtual InstructionCost
+ getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
+ TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
+ VectorType *SubTp, ArrayRef<const Value *> Args = {},
+ const Instruction *CxtI = nullptr) const {
return 1;
}
@@ -1141,14 +1140,6 @@ class LLVM_ABI TargetTransformInfoImplBase {
return true;
}
- virtual TargetTransformInfo::VectorInstrContext getBuildVectorContextHint(
- ArrayRef<int> Mask, ArrayRef<Value *> Scalars,
- function_ref<
- bool(SmallVectorImpl<TargetTransformInfo::BuildVectorUseOp> &)>
- GatherUseOps) const {
- return TargetTransformInfo::VectorInstrContext::None;
- }
-
virtual bool isElementTypeLegalForScalableVector(Type *Ty) const {
return true;
}
diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h
index 9895bc94478b4..9723016ca23b4 100644
--- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h
+++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h
@@ -1226,9 +1226,7 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase<T> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override {
+ const Instruction *CxtI = nullptr) const override {
switch (improveShuffleKindFromMask(Kind, Mask, SrcTy, Index, SubTp)) {
case TTI::SK_Broadcast:
if (auto *FVT = dyn_cast<FixedVectorType>(SrcTy))
diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp
index afd6f895039e0..a9f76a735a48c 100644
--- a/llvm/lib/Analysis/TargetTransformInfo.cpp
+++ b/llvm/lib/Analysis/TargetTransformInfo.cpp
@@ -643,13 +643,6 @@ bool TargetTransformInfo::isTargetIntrinsicWithStructReturnOverloadAtField(
return TTIImpl->isTargetIntrinsicWithStructReturnOverloadAtField(ID, RetIdx);
}
-TargetTransformInfo::VectorInstrContext
-TargetTransformInfo::combineVectorInstrContexts(
- TargetTransformInfo::VectorInstrContext Ctx1,
- TargetTransformInfo::VectorInstrContext Ctx2) {
- return Ctx1 == Ctx2 ? Ctx1 : TargetTransformInfo::VectorInstrContext::None;
-}
-
TargetTransformInfo::VectorInstrContext
TargetTransformInfo::getVectorInstrContextHint(const Instruction *I) {
if (!I)
@@ -669,14 +662,6 @@ TargetTransformInfo::getVectorInstrContextHint(const Instruction *I) {
return VectorInstrContext::None;
}
-TargetTransformInfo::VectorInstrContext
-TargetTransformInfo::getBuildVectorContextHint(
- ArrayRef<int> Mask, ArrayRef<Value *> Scalars,
- function_ref<bool(SmallVectorImpl<BuildVectorUseOp> &)> GatherUseOps)
- const {
- return TTIImpl->getBuildVectorContextHint(Mask, Scalars, GatherUseOps);
-}
-
InstructionCost TargetTransformInfo::getScalarizationOverhead(
VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract,
TTI::TargetCostKind CostKind, bool ForPoisonSrc, ArrayRef<Value *> VL,
@@ -1052,15 +1037,15 @@ InstructionCost TargetTransformInfo::getAltInstrCost(
InstructionCost TargetTransformInfo::getShuffleCost(
ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+ VectorType *SubTp, ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
assert((Mask.empty() || DstTy->isScalableTy() ||
Mask.size() == DstTy->getElementCount().getKnownMinValue()) &&
"Expected the Mask to match the return size if given");
assert(SrcTy->getScalarType() == DstTy->getScalarType() &&
"Expected the same scalar types");
InstructionCost Cost = TTIImpl->getShuffleCost(
- Kind, DstTy, SrcTy, CostKind, Mask, Index, SubTp, Args, CxtI, VIC);
+ Kind, DstTy, SrcTy, CostKind, Mask, Index, SubTp, Args, CxtI);
assert(Cost >= 0 && "TTI should not produce negative costs!");
return Cost;
}
diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
index 272bd8b0af64d..8e0b88dbad0eb 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
@@ -6948,11 +6948,12 @@ InstructionCost AArch64TTIImpl::getPartialReductionCost(
BinOp, CostKind, FMF);
}
-InstructionCost AArch64TTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost
+AArch64TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy,
+ VectorType *SrcTy, TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index, VectorType *SubTp,
+ ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
assert((Mask.empty() || DstTy->isScalableTy() ||
Mask.size() == DstTy->getElementCount().getKnownMinValue()) &&
"Expected the Mask to match the return size if given");
diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
index f8f771525150e..dc840f5c7565f 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
+++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
@@ -516,9 +516,7 @@ class AArch64TTIImpl final : public BasicTTIImplBase<AArch64TTIImpl> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override;
+ const Instruction *CxtI = nullptr) const override;
InstructionCost
getScalarizationOverhead(VectorType *Ty, const APInt &DemandedElts,
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
index 740042db01a51..a7556278b7e0d 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
@@ -1379,11 +1379,13 @@ Value *GCNTTIImpl::rewriteIntrinsicWithAddressSpace(IntrinsicInst *II,
}
}
-InstructionCost GCNTTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost GCNTTIImpl::getShuffleCost(TTI::ShuffleKind Kind,
+ VectorType *DstTy, VectorType *SrcTy,
+ TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index,
+ VectorType *SubTp,
+ ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
if (!isa<FixedVectorType>(SrcTy))
return BaseT::getShuffleCost(Kind, DstTy, SrcTy, CostKind, Mask, Index,
SubTp);
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
index 4d9ff8d2d767f..887802c950982 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
@@ -249,9 +249,7 @@ class GCNTTIImpl final : public BasicTTIImplBase<GCNTTIImpl> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override;
+ const Instruction *CxtI = nullptr) const override;
bool isProfitableToSinkOperands(Instruction *I,
SmallVectorImpl<Use *> &Ops) const override;
diff --git a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
index d9b83ea76a20e..d8ba99a4da023 100644
--- a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
@@ -1224,11 +1224,13 @@ InstructionCost ARMTTIImpl::getMemcpyCost(const Instruction *I) const {
return NumOps;
}
-InstructionCost ARMTTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost ARMTTIImpl::getShuffleCost(TTI::ShuffleKind Kind,
+ VectorType *DstTy, VectorType *SrcTy,
+ TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index,
+ VectorType *SubTp,
+ ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
assert((Mask.empty() || DstTy->isScalableTy() ||
Mask.size() == DstTy->getElementCount().getKnownMinValue()) &&
"Expected the Mask to match the return size if given");
diff --git a/llvm/lib/Target/ARM/ARMTargetTransformInfo.h b/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
index 0ad782320ecc0..3e6ad7f13b4e7 100644
--- a/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
+++ b/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
@@ -195,9 +195,7 @@ class ARMTTIImpl final : public BasicTTIImplBase<ARMTTIImpl> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override;
+ const Instruction *CxtI = nullptr) const override;
bool preferInLoopReduction(RecurKind Kind, Type *Ty) const override;
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
index fad70ff87cc75..466b5ab3a0aed 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
@@ -231,11 +231,12 @@ InstructionCost HexagonTTIImpl::getMemoryOpCost(unsigned Opcode, Type *Src,
OpInfo, I);
}
-InstructionCost HexagonTTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost
+HexagonTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy,
+ VectorType *SrcTy, TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index, VectorType *SubTp,
+ ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
return 1;
}
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
index 59642d6cf2d97..1189b9bc9e065 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
+++ b/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
@@ -128,9 +128,7 @@ class HexagonTTIImpl final : public BasicTTIImplBase<HexagonTTIImpl> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override;
+ const Instruction *CxtI = nullptr) const override;
InstructionCost getInterleavedMemoryOpCost(
unsigned Opcode, Type *VecTy, unsigned Factor, ArrayRef<unsigned> Indices,
Align Alignment, unsigned AddressSpace, TTI::TargetCostKind CostKind,
diff --git a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
index 9d46853e5d583..3b2c5b06e0cfa 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
@@ -617,11 +617,13 @@ InstructionCost PPCTTIImpl::getArithmeticInstrCost(
return Cost * CostFactor;
}
-InstructionCost PPCTTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost PPCTTIImpl::getShuffleCost(TTI::ShuffleKind Kind,
+ VectorType *DstTy, VectorType *SrcTy,
+ TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index,
+ VectorType *SubTp,
+ ArrayRef<const Value *> Args,
+ const Instruction *CxtI) const {
InstructionCost CostFactor =
vectorCostAdjustmentFactor(Instruction::ShuffleVector, SrcTy, nullptr);
diff --git a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
index a16463275cb1e..b8e7277f2ff51 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
+++ b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
@@ -115,9 +115,7 @@ class PPCTTIImpl final : public BasicTTIImplBase<PPCTTIImpl> {
getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
VectorType *SubTp, ArrayRef<const Value *> Args = {},
- const Instruction *CxtI = nullptr,
- TTI::VectorInstrContext VIC =
- TTI::VectorInstrContext::None) const override;
+ const Instruction *CxtI = nullptr) const override;
InstructionCost
getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src,
TTI::CastContextHint CCH, TTI::TargetCostKind CostKind,
diff --git a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
index 54ffa1504823a..43b4791998d39 100644
--- a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+++ b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
@@ -733,11 +733,12 @@ InstructionCost RISCVTTIImpl::getSlideCost(FixedVectorType *Tp,
return FirstSlideCost + SecondSlideCost + MaskCost;
}
-InstructionCost RISCVTTIImpl::getShuffleCost(
- TTI::ShuffleKind Kind, VectorType *DstTy, VectorType *SrcTy,
- TTI::TargetCostKind CostKind, ArrayRef<int> Mask, int Index,
- VectorType *SubTp, ArrayRef<const Value *> Args, const Instruction *CxtI,
- TTI::VectorInstrContext VIC) const {
+InstructionCost
+RISCVTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, VectorType *DstTy,
+ VectorType *SrcTy, TTI::TargetCostKind CostKind,
+ ArrayRef<int> Mask, int Index, VectorTy...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/224426
More information about the llvm-commits
mailing list