mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Add a subtype parameter to VTTI::getShuffleCost
In order to cost subvector insertion and extraction, we need to know the type of the subvector being extracted. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171453 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e5ab1bee8c
commit
82860f63e1
@ -72,7 +72,7 @@ public:
|
||||
virtual unsigned getArithmeticInstrCost(unsigned Opcode, Type *Ty) const;
|
||||
|
||||
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||
int Index) const;
|
||||
int Index, Type *SubTp) const;
|
||||
|
||||
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
||||
Type *Src) const;
|
||||
|
@ -170,10 +170,10 @@ public:
|
||||
}
|
||||
|
||||
/// Returns the cost of a shuffle instruction of kind Kind and of type Tp.
|
||||
/// The index parameter is used by some of the shuffle kinds to add
|
||||
/// additional information.
|
||||
/// The index and subtype parameters are used by some of the shuffle kinds
|
||||
/// to add additional information.
|
||||
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||
int Index = 0) const {
|
||||
int Index = 0, Type *SubTp = 0) const {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -209,8 +209,7 @@ unsigned VectorTargetTransformImpl::getArithmeticInstrCost(unsigned Opcode,
|
||||
}
|
||||
|
||||
unsigned VectorTargetTransformImpl::getShuffleCost(ShuffleKind Kind,
|
||||
Type *Tp,
|
||||
int Index) const {
|
||||
Type *Tp, int Index, Type *SubTp) const {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -18303,10 +18303,11 @@ unsigned X86VectorTargetTransformInfo::getCastInstrCost(unsigned Opcode,
|
||||
|
||||
|
||||
unsigned X86VectorTargetTransformInfo::getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||
int Index) const {
|
||||
int Index,
|
||||
Type *SubTp) const {
|
||||
// We only estimate the cost of reverse shuffles.
|
||||
if (Kind != Reverse)
|
||||
return VectorTargetTransformImpl::getShuffleCost(Kind, Tp, Index);
|
||||
return VectorTargetTransformImpl::getShuffleCost(Kind, Tp, Index, SubTp);
|
||||
|
||||
std::pair<unsigned, MVT> LT = getTypeLegalizationCost(Tp);
|
||||
unsigned Cost = 1;
|
||||
|
@ -974,7 +974,8 @@ namespace llvm {
|
||||
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
||||
Type *Src) const;
|
||||
|
||||
unsigned getShuffleCost(ShuffleKind Kind, Type *Tp, int Index) const;
|
||||
unsigned getShuffleCost(ShuffleKind Kind,
|
||||
Type *Tp, int Index, Type *SubTp) const;
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user