mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 14:15:53 +00:00
Change shouldSplitVectorElementType to better match the description.
Pass the entire vector type, and not just the element. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205247 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f2529ba127
commit
8d8c507bbf
@ -183,7 +183,7 @@ public:
|
||||
/// Return true if a vector of the given type should be split
|
||||
/// (TypeSplitVector) instead of promoted (TypePromoteInteger) during type
|
||||
/// legalization.
|
||||
virtual bool shouldSplitVectorElementType(EVT /*VT*/) const { return false; }
|
||||
virtual bool shouldSplitVectorType(EVT /*VT*/) const { return false; }
|
||||
|
||||
// There are two general methods for expanding a BUILD_VECTOR node:
|
||||
// 1. Use SCALAR_TO_VECTOR on the defined scalar values and then shuffle
|
||||
|
@ -1087,7 +1087,7 @@ void TargetLoweringBase::computeRegisterProperties() {
|
||||
// that wider vector type.
|
||||
MVT EltVT = VT.getVectorElementType();
|
||||
unsigned NElts = VT.getVectorNumElements();
|
||||
if (NElts != 1 && !shouldSplitVectorElementType(EltVT)) {
|
||||
if (NElts != 1 && !shouldSplitVectorType(VT)) {
|
||||
bool IsLegalWiderType = false;
|
||||
// First try to promote the elements of integer vectors. If no legal
|
||||
// promotion was found, fallback to the widen-vector method.
|
||||
|
@ -331,8 +331,8 @@ const char *NVPTXTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
}
|
||||
}
|
||||
|
||||
bool NVPTXTargetLowering::shouldSplitVectorElementType(EVT VT) const {
|
||||
return VT == MVT::i1;
|
||||
bool NVPTXTargetLowering::shouldSplitVectorType(EVT VT) const {
|
||||
return VT.getScalarType() == MVT::i1;
|
||||
}
|
||||
|
||||
SDValue
|
||||
|
@ -141,7 +141,7 @@ public:
|
||||
// PTX always uses 32-bit shift amounts
|
||||
virtual MVT getScalarShiftAmountTy(EVT LHSTy) const { return MVT::i32; }
|
||||
|
||||
virtual bool shouldSplitVectorElementType(EVT VT) const;
|
||||
virtual bool shouldSplitVectorType(EVT VT) const override;
|
||||
|
||||
private:
|
||||
const NVPTXSubtarget &nvptxSubtarget; // cache the subtarget here
|
||||
|
@ -211,8 +211,8 @@ bool SITargetLowering::allowsUnalignedMemoryAccesses(EVT VT,
|
||||
return VT.bitsGT(MVT::i32);
|
||||
}
|
||||
|
||||
bool SITargetLowering::shouldSplitVectorElementType(EVT VT) const {
|
||||
return VT.bitsLE(MVT::i16);
|
||||
bool SITargetLowering::shouldSplitVectorType(EVT VT) const {
|
||||
return VT.getScalarType().bitsLE(MVT::i16);
|
||||
}
|
||||
|
||||
bool SITargetLowering::shouldConvertConstantLoadToIntImm(const APInt &Imm,
|
||||
|
@ -50,7 +50,7 @@ class SITargetLowering : public AMDGPUTargetLowering {
|
||||
public:
|
||||
SITargetLowering(TargetMachine &tm);
|
||||
bool allowsUnalignedMemoryAccesses(EVT VT, unsigned AS, bool *IsFast) const;
|
||||
virtual bool shouldSplitVectorElementType(EVT VT) const;
|
||||
virtual bool shouldSplitVectorType(EVT VT) const override;
|
||||
|
||||
virtual bool shouldConvertConstantLoadToIntImm(const APInt &Imm,
|
||||
Type *Ty) const override;
|
||||
|
Loading…
Reference in New Issue
Block a user