mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +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 getArithmeticInstrCost(unsigned Opcode, Type *Ty) const;
|
||||||
|
|
||||||
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||||
int Index) const;
|
int Index, Type *SubTp) const;
|
||||||
|
|
||||||
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
||||||
Type *Src) const;
|
Type *Src) const;
|
||||||
|
@ -170,10 +170,10 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the cost of a shuffle instruction of kind Kind and of type Tp.
|
/// 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
|
/// The index and subtype parameters are used by some of the shuffle kinds
|
||||||
/// additional information.
|
/// to add additional information.
|
||||||
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
virtual unsigned getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||||
int Index = 0) const {
|
int Index = 0, Type *SubTp = 0) const {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,8 +209,7 @@ unsigned VectorTargetTransformImpl::getArithmeticInstrCost(unsigned Opcode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned VectorTargetTransformImpl::getShuffleCost(ShuffleKind Kind,
|
unsigned VectorTargetTransformImpl::getShuffleCost(ShuffleKind Kind,
|
||||||
Type *Tp,
|
Type *Tp, int Index, Type *SubTp) const {
|
||||||
int Index) const {
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18303,10 +18303,11 @@ unsigned X86VectorTargetTransformInfo::getCastInstrCost(unsigned Opcode,
|
|||||||
|
|
||||||
|
|
||||||
unsigned X86VectorTargetTransformInfo::getShuffleCost(ShuffleKind Kind, Type *Tp,
|
unsigned X86VectorTargetTransformInfo::getShuffleCost(ShuffleKind Kind, Type *Tp,
|
||||||
int Index) const {
|
int Index,
|
||||||
|
Type *SubTp) const {
|
||||||
// We only estimate the cost of reverse shuffles.
|
// We only estimate the cost of reverse shuffles.
|
||||||
if (Kind != Reverse)
|
if (Kind != Reverse)
|
||||||
return VectorTargetTransformImpl::getShuffleCost(Kind, Tp, Index);
|
return VectorTargetTransformImpl::getShuffleCost(Kind, Tp, Index, SubTp);
|
||||||
|
|
||||||
std::pair<unsigned, MVT> LT = getTypeLegalizationCost(Tp);
|
std::pair<unsigned, MVT> LT = getTypeLegalizationCost(Tp);
|
||||||
unsigned Cost = 1;
|
unsigned Cost = 1;
|
||||||
|
@ -974,7 +974,8 @@ namespace llvm {
|
|||||||
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
virtual unsigned getCastInstrCost(unsigned Opcode, Type *Dst,
|
||||||
Type *Src) const;
|
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