mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-23 02:32:11 +00:00
Rename several variables from EVT to more descriptive names, now that EVT
is also the name of their type, as declarations like "EVT EVT" look really odd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82654 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
54d4a53c42
commit
8a55ce4a39
@ -547,13 +547,13 @@ public:
|
||||
unsigned Alignment=0);
|
||||
SDValue getExtLoad(ISD::LoadExtType ExtType, DebugLoc dl, EVT VT,
|
||||
SDValue Chain, SDValue Ptr, const Value *SV,
|
||||
int SVOffset, EVT EVT, bool isVolatile=false,
|
||||
int SVOffset, EVT MemVT, bool isVolatile=false,
|
||||
unsigned Alignment=0);
|
||||
SDValue getIndexedLoad(SDValue OrigLoad, DebugLoc dl, SDValue Base,
|
||||
SDValue Offset, ISD::MemIndexedMode AM);
|
||||
SDValue getLoad(ISD::MemIndexedMode AM, DebugLoc dl, ISD::LoadExtType ExtType,
|
||||
EVT VT, SDValue Chain, SDValue Ptr, SDValue Offset,
|
||||
const Value *SV, int SVOffset, EVT EVT,
|
||||
const Value *SV, int SVOffset, EVT MemVT,
|
||||
bool isVolatile=false, unsigned Alignment=0);
|
||||
|
||||
/// getStore - Helper function to build ISD::STORE nodes.
|
||||
|
@ -1839,18 +1839,18 @@ SDValue DAGCombiner::visitAND(SDNode *N) {
|
||||
// fold (zext_inreg (extload x)) -> (zextload x)
|
||||
if (ISD::isEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode())) {
|
||||
LoadSDNode *LN0 = cast<LoadSDNode>(N0);
|
||||
EVT EVT = LN0->getMemoryVT();
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
// If we zero all the possible extended bits, then we can turn this into
|
||||
// a zextload if we are running before legalize or the operation is legal.
|
||||
unsigned BitWidth = N1.getValueSizeInBits();
|
||||
if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,
|
||||
BitWidth - EVT.getSizeInBits())) &&
|
||||
BitWidth - MemVT.getSizeInBits())) &&
|
||||
((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, EVT))) {
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT,
|
||||
LN0->getChain(), LN0->getBasePtr(),
|
||||
LN0->getSrcValue(),
|
||||
LN0->getSrcValueOffset(), EVT,
|
||||
LN0->getSrcValueOffset(), MemVT,
|
||||
LN0->isVolatile(), LN0->getAlignment());
|
||||
AddToWorkList(N);
|
||||
CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1));
|
||||
@ -1861,18 +1861,18 @@ SDValue DAGCombiner::visitAND(SDNode *N) {
|
||||
if (ISD::isSEXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) &&
|
||||
N0.hasOneUse()) {
|
||||
LoadSDNode *LN0 = cast<LoadSDNode>(N0);
|
||||
EVT EVT = LN0->getMemoryVT();
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
// If we zero all the possible extended bits, then we can turn this into
|
||||
// a zextload if we are running before legalize or the operation is legal.
|
||||
unsigned BitWidth = N1.getValueSizeInBits();
|
||||
if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,
|
||||
BitWidth - EVT.getSizeInBits())) &&
|
||||
BitWidth - MemVT.getSizeInBits())) &&
|
||||
((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, EVT))) {
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT,
|
||||
LN0->getChain(),
|
||||
LN0->getBasePtr(), LN0->getSrcValue(),
|
||||
LN0->getSrcValueOffset(), EVT,
|
||||
LN0->getSrcValueOffset(), MemVT,
|
||||
LN0->isVolatile(), LN0->getAlignment());
|
||||
AddToWorkList(N);
|
||||
CombineTo(N0.getNode(), ExtLoad, ExtLoad.getValue(1));
|
||||
@ -3086,13 +3086,13 @@ SDValue DAGCombiner::visitSIGN_EXTEND(SDNode *N) {
|
||||
if ((ISD::isSEXTLoad(N0.getNode()) || ISD::isEXTLoad(N0.getNode())) &&
|
||||
ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) {
|
||||
LoadSDNode *LN0 = cast<LoadSDNode>(N0);
|
||||
EVT EVT = LN0->getMemoryVT();
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
if ((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::SEXTLOAD, EVT)) {
|
||||
TLI.isLoadExtLegal(ISD::SEXTLOAD, MemVT)) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::SEXTLOAD, N->getDebugLoc(), VT,
|
||||
LN0->getChain(),
|
||||
LN0->getBasePtr(), LN0->getSrcValue(),
|
||||
LN0->getSrcValueOffset(), EVT,
|
||||
LN0->getSrcValueOffset(), MemVT,
|
||||
LN0->isVolatile(), LN0->getAlignment());
|
||||
CombineTo(N, ExtLoad);
|
||||
CombineTo(N0.getNode(),
|
||||
@ -3246,13 +3246,13 @@ SDValue DAGCombiner::visitZERO_EXTEND(SDNode *N) {
|
||||
if ((ISD::isZEXTLoad(N0.getNode()) || ISD::isEXTLoad(N0.getNode())) &&
|
||||
ISD::isUNINDEXEDLoad(N0.getNode()) && N0.hasOneUse()) {
|
||||
LoadSDNode *LN0 = cast<LoadSDNode>(N0);
|
||||
EVT EVT = LN0->getMemoryVT();
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
if ((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, EVT)) {
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT)) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N->getDebugLoc(), VT,
|
||||
LN0->getChain(),
|
||||
LN0->getBasePtr(), LN0->getSrcValue(),
|
||||
LN0->getSrcValueOffset(), EVT,
|
||||
LN0->getSrcValueOffset(), MemVT,
|
||||
LN0->isVolatile(), LN0->getAlignment());
|
||||
CombineTo(N, ExtLoad);
|
||||
CombineTo(N0.getNode(),
|
||||
@ -3382,11 +3382,11 @@ SDValue DAGCombiner::visitANY_EXTEND(SDNode *N) {
|
||||
!ISD::isNON_EXTLoad(N0.getNode()) && ISD::isUNINDEXEDLoad(N0.getNode()) &&
|
||||
N0.hasOneUse()) {
|
||||
LoadSDNode *LN0 = cast<LoadSDNode>(N0);
|
||||
EVT EVT = LN0->getMemoryVT();
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
SDValue ExtLoad = DAG.getExtLoad(LN0->getExtensionType(), N->getDebugLoc(),
|
||||
VT, LN0->getChain(), LN0->getBasePtr(),
|
||||
LN0->getSrcValue(),
|
||||
LN0->getSrcValueOffset(), EVT,
|
||||
LN0->getSrcValueOffset(), MemVT,
|
||||
LN0->isVolatile(), LN0->getAlignment());
|
||||
CombineTo(N, ExtLoad);
|
||||
CombineTo(N0.getNode(),
|
||||
@ -5291,9 +5291,9 @@ SDValue DAGCombiner::visitINSERT_VECTOR_ELT(SDNode *N) {
|
||||
if (!LegalOperations && InVec.getOpcode() == ISD::UNDEF &&
|
||||
isa<ConstantSDNode>(EltNo)) {
|
||||
EVT VT = InVec.getValueType();
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
unsigned NElts = VT.getVectorNumElements();
|
||||
SmallVector<SDValue, 8> Ops(NElts, DAG.getUNDEF(EVT));
|
||||
SmallVector<SDValue, 8> Ops(NElts, DAG.getUNDEF(EltVT));
|
||||
|
||||
unsigned Elt = cast<ConstantSDNode>(EltNo)->getZExtValue();
|
||||
if (Elt < Ops.size())
|
||||
@ -5599,9 +5599,9 @@ SDValue DAGCombiner::XformToShuffleWithZero(SDNode *N) {
|
||||
return SDValue();
|
||||
|
||||
// Return the new VECTOR_SHUFFLE node.
|
||||
EVT EVT = RVT.getVectorElementType();
|
||||
EVT EltVT = RVT.getVectorElementType();
|
||||
SmallVector<SDValue,8> ZeroOps(RVT.getVectorNumElements(),
|
||||
DAG.getConstant(0, EVT));
|
||||
DAG.getConstant(0, EltVT));
|
||||
SDValue Zero = DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(),
|
||||
RVT, &ZeroOps[0], ZeroOps.size());
|
||||
LHS = DAG.getNode(ISD::BIT_CONVERT, dl, RVT, LHS);
|
||||
|
@ -1498,10 +1498,10 @@ void DAGTypeLegalizer::ExpandIntRes_LOAD(LoadSDNode *N,
|
||||
assert(NVT.isByteSized() && "Expanded type not byte sized!");
|
||||
|
||||
if (N->getMemoryVT().bitsLE(NVT)) {
|
||||
EVT EVT = N->getMemoryVT();
|
||||
EVT MemVT = N->getMemoryVT();
|
||||
|
||||
Lo = DAG.getExtLoad(ExtType, dl, NVT, Ch, Ptr, N->getSrcValue(), SVOffset,
|
||||
EVT, isVolatile, Alignment);
|
||||
MemVT, isVolatile, Alignment);
|
||||
|
||||
// Remember the chain.
|
||||
Ch = Lo.getValue(1);
|
||||
@ -1544,14 +1544,15 @@ void DAGTypeLegalizer::ExpandIntRes_LOAD(LoadSDNode *N,
|
||||
} else {
|
||||
// Big-endian - high bits are at low addresses. Favor aligned loads at
|
||||
// the cost of some bit-fiddling.
|
||||
EVT EVT = N->getMemoryVT();
|
||||
unsigned EBytes = EVT.getStoreSizeInBits()/8;
|
||||
EVT MemVT = N->getMemoryVT();
|
||||
unsigned EBytes = MemVT.getStoreSizeInBits()/8;
|
||||
unsigned IncrementSize = NVT.getSizeInBits()/8;
|
||||
unsigned ExcessBits = (EBytes - IncrementSize)*8;
|
||||
|
||||
// Load both the high bits and maybe some of the low bits.
|
||||
Hi = DAG.getExtLoad(ExtType, dl, NVT, Ch, Ptr, N->getSrcValue(), SVOffset,
|
||||
EVT::getIntegerVT(*DAG.getContext(), EVT.getSizeInBits() - ExcessBits),
|
||||
EVT::getIntegerVT(*DAG.getContext(),
|
||||
MemVT.getSizeInBits() - ExcessBits),
|
||||
isVolatile, Alignment);
|
||||
|
||||
// Increment the pointer to the other half.
|
||||
|
@ -3645,26 +3645,26 @@ SDValue
|
||||
SelectionDAG::getLoad(ISD::MemIndexedMode AM, DebugLoc dl,
|
||||
ISD::LoadExtType ExtType, EVT VT, SDValue Chain,
|
||||
SDValue Ptr, SDValue Offset,
|
||||
const Value *SV, int SVOffset, EVT EVT,
|
||||
const Value *SV, int SVOffset, EVT MemVT,
|
||||
bool isVolatile, unsigned Alignment) {
|
||||
if (Alignment == 0) // Ensure that codegen never sees alignment 0
|
||||
Alignment = getEVTAlignment(VT);
|
||||
|
||||
if (VT == EVT) {
|
||||
if (VT == MemVT) {
|
||||
ExtType = ISD::NON_EXTLOAD;
|
||||
} else if (ExtType == ISD::NON_EXTLOAD) {
|
||||
assert(VT == EVT && "Non-extending load from different memory type!");
|
||||
assert(VT == MemVT && "Non-extending load from different memory type!");
|
||||
} else {
|
||||
// Extending load.
|
||||
if (VT.isVector())
|
||||
assert(EVT.getVectorNumElements() == VT.getVectorNumElements() &&
|
||||
assert(MemVT.getVectorNumElements() == VT.getVectorNumElements() &&
|
||||
"Invalid vector extload!");
|
||||
else
|
||||
assert(EVT.bitsLT(VT) &&
|
||||
assert(MemVT.bitsLT(VT) &&
|
||||
"Should only be an extending load, not truncating!");
|
||||
assert((ExtType == ISD::EXTLOAD || VT.isInteger()) &&
|
||||
"Cannot sign/zero extend a FP/Vector load!");
|
||||
assert(VT.isInteger() == EVT.isInteger() &&
|
||||
assert(VT.isInteger() == MemVT.isInteger() &&
|
||||
"Cannot convert from FP to Int or Int -> FP!");
|
||||
}
|
||||
|
||||
@ -3677,13 +3677,13 @@ SelectionDAG::getLoad(ISD::MemIndexedMode AM, DebugLoc dl,
|
||||
SDValue Ops[] = { Chain, Ptr, Offset };
|
||||
FoldingSetNodeID ID;
|
||||
AddNodeIDNode(ID, ISD::LOAD, VTs, Ops, 3);
|
||||
ID.AddInteger(EVT.getRawBits());
|
||||
ID.AddInteger(MemVT.getRawBits());
|
||||
ID.AddInteger(encodeMemSDNodeFlags(ExtType, AM, isVolatile, Alignment));
|
||||
void *IP = 0;
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
SDNode *N = NodeAllocator.Allocate<LoadSDNode>();
|
||||
new (N) LoadSDNode(Ops, dl, VTs, AM, ExtType, EVT, SV, SVOffset,
|
||||
new (N) LoadSDNode(Ops, dl, VTs, AM, ExtType, MemVT, SV, SVOffset,
|
||||
Alignment, isVolatile);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
@ -3702,11 +3702,11 @@ SDValue SelectionDAG::getLoad(EVT VT, DebugLoc dl,
|
||||
SDValue SelectionDAG::getExtLoad(ISD::LoadExtType ExtType, DebugLoc dl, EVT VT,
|
||||
SDValue Chain, SDValue Ptr,
|
||||
const Value *SV,
|
||||
int SVOffset, EVT EVT,
|
||||
int SVOffset, EVT MemVT,
|
||||
bool isVolatile, unsigned Alignment) {
|
||||
SDValue Undef = getUNDEF(Ptr.getValueType());
|
||||
return getLoad(ISD::UNINDEXED, dl, ExtType, VT, Chain, Ptr, Undef,
|
||||
SV, SVOffset, EVT, isVolatile, Alignment);
|
||||
SV, SVOffset, MemVT, isVolatile, Alignment);
|
||||
}
|
||||
|
||||
SDValue
|
||||
|
@ -606,13 +606,13 @@ void TargetLowering::computeRegisterProperties() {
|
||||
// Every integer value type larger than this largest register takes twice as
|
||||
// many registers to represent as the previous ValueType.
|
||||
for (unsigned ExpandedReg = LargestIntReg + 1; ; ++ExpandedReg) {
|
||||
EVT EVT = (MVT::SimpleValueType)ExpandedReg;
|
||||
if (!EVT.isInteger())
|
||||
EVT ExpandedVT = (MVT::SimpleValueType)ExpandedReg;
|
||||
if (!ExpandedVT.isInteger())
|
||||
break;
|
||||
NumRegistersForVT[ExpandedReg] = 2*NumRegistersForVT[ExpandedReg-1];
|
||||
RegisterTypeForVT[ExpandedReg] = (MVT::SimpleValueType)LargestIntReg;
|
||||
TransformToType[ExpandedReg] = (MVT::SimpleValueType)(ExpandedReg - 1);
|
||||
ValueTypeActions.setTypeAction(EVT, Expand);
|
||||
ValueTypeActions.setTypeAction(ExpandedVT, Expand);
|
||||
}
|
||||
|
||||
// Inspect all of the ValueType's smaller than the largest integer
|
||||
|
@ -4164,8 +4164,8 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) {
|
||||
if (isShift && ShVal.hasOneUse()) {
|
||||
// If the shifted value has multiple uses, it may be cheaper to use
|
||||
// v_set0 + movlhps or movhlps, etc.
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
ShAmt *= EVT.getSizeInBits();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
ShAmt *= EltVT.getSizeInBits();
|
||||
return getVShift(isLeft, VT, ShVal, ShAmt, DAG, *this, dl);
|
||||
}
|
||||
|
||||
@ -4192,8 +4192,8 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) {
|
||||
|
||||
if (isShift) {
|
||||
// No better options. Use a vshl / vsrl.
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
ShAmt *= EVT.getSizeInBits();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
ShAmt *= EltVT.getSizeInBits();
|
||||
return getVShift(isLeft, VT, ShVal, ShAmt, DAG, *this, dl);
|
||||
}
|
||||
|
||||
@ -4368,10 +4368,10 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
|
||||
MVT::v4i32, Vec),
|
||||
Op.getOperand(1)));
|
||||
// Transform it so it match pextrw which produces a 32-bit result.
|
||||
EVT EVT = (MVT::SimpleValueType)(VT.getSimpleVT().SimpleTy+1);
|
||||
SDValue Extract = DAG.getNode(X86ISD::PEXTRW, dl, EVT,
|
||||
EVT EltVT = (MVT::SimpleValueType)(VT.getSimpleVT().SimpleTy+1);
|
||||
SDValue Extract = DAG.getNode(X86ISD::PEXTRW, dl, EltVT,
|
||||
Op.getOperand(0), Op.getOperand(1));
|
||||
SDValue Assert = DAG.getNode(ISD::AssertZext, dl, EVT, Extract,
|
||||
SDValue Assert = DAG.getNode(ISD::AssertZext, dl, EltVT, Extract,
|
||||
DAG.getValueType(VT));
|
||||
return DAG.getNode(ISD::TRUNCATE, dl, VT, Assert);
|
||||
} else if (VT.getSizeInBits() == 32) {
|
||||
@ -4411,17 +4411,17 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue
|
||||
X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op, SelectionDAG &DAG){
|
||||
EVT VT = Op.getValueType();
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
|
||||
SDValue N0 = Op.getOperand(0);
|
||||
SDValue N1 = Op.getOperand(1);
|
||||
SDValue N2 = Op.getOperand(2);
|
||||
|
||||
if ((EVT.getSizeInBits() == 8 || EVT.getSizeInBits() == 16) &&
|
||||
if ((EltVT.getSizeInBits() == 8 || EltVT.getSizeInBits() == 16) &&
|
||||
isa<ConstantSDNode>(N2)) {
|
||||
unsigned Opc = (EVT.getSizeInBits() == 8) ? X86ISD::PINSRB
|
||||
: X86ISD::PINSRW;
|
||||
unsigned Opc = (EltVT.getSizeInBits() == 8) ? X86ISD::PINSRB
|
||||
: X86ISD::PINSRW;
|
||||
// Transform it so it match pinsr{b,w} which expects a GR32 as its second
|
||||
// argument.
|
||||
if (N1.getValueType() != MVT::i32)
|
||||
@ -4429,7 +4429,7 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op, SelectionDAG &DAG){
|
||||
if (N2.getValueType() != MVT::i32)
|
||||
N2 = DAG.getIntPtrConstant(cast<ConstantSDNode>(N2)->getZExtValue());
|
||||
return DAG.getNode(Opc, dl, VT, N0, N1, N2);
|
||||
} else if (EVT == MVT::f32 && isa<ConstantSDNode>(N2)) {
|
||||
} else if (EltVT == MVT::f32 && isa<ConstantSDNode>(N2)) {
|
||||
// Bits [7:6] of the constant are the source select. This will always be
|
||||
// zero here. The DAG Combiner may combine an extract_elt index into these
|
||||
// bits. For example (insert (extract, 3), 2) could be matched by putting
|
||||
@ -4442,7 +4442,7 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op, SelectionDAG &DAG){
|
||||
// Create this as a scalar to vector..
|
||||
N1 = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, MVT::v4f32, N1);
|
||||
return DAG.getNode(X86ISD::INSERTPS, dl, VT, N0, N1, N2);
|
||||
} else if (EVT == MVT::i32 && isa<ConstantSDNode>(N2)) {
|
||||
} else if (EltVT == MVT::i32 && isa<ConstantSDNode>(N2)) {
|
||||
// PINSR* works with constant index.
|
||||
return Op;
|
||||
}
|
||||
@ -4452,12 +4452,12 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op, SelectionDAG &DAG){
|
||||
SDValue
|
||||
X86TargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
|
||||
EVT VT = Op.getValueType();
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
|
||||
if (Subtarget->hasSSE41())
|
||||
return LowerINSERT_VECTOR_ELT_SSE4(Op, DAG);
|
||||
|
||||
if (EVT == MVT::i8)
|
||||
if (EltVT == MVT::i8)
|
||||
return SDValue();
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
@ -4465,7 +4465,7 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue N1 = Op.getOperand(1);
|
||||
SDValue N2 = Op.getOperand(2);
|
||||
|
||||
if (EVT.getSizeInBits() == 16 && isa<ConstantSDNode>(N2)) {
|
||||
if (EltVT.getSizeInBits() == 16 && isa<ConstantSDNode>(N2)) {
|
||||
// Transform it so it match pinsrw which expects a 16-bit value in a GR32
|
||||
// as its second argument.
|
||||
if (N1.getValueType() != MVT::i32)
|
||||
@ -8170,7 +8170,7 @@ static bool isBaseAlignmentOfN(unsigned N, SDNode *Base,
|
||||
}
|
||||
|
||||
static bool EltsFromConsecutiveLoads(ShuffleVectorSDNode *N, unsigned NumElems,
|
||||
EVT EVT, LoadSDNode *&LDBase,
|
||||
EVT EltVT, LoadSDNode *&LDBase,
|
||||
unsigned &LastLoadedElt,
|
||||
SelectionDAG &DAG, MachineFrameInfo *MFI,
|
||||
const TargetLowering &TLI) {
|
||||
@ -8198,7 +8198,7 @@ static bool EltsFromConsecutiveLoads(ShuffleVectorSDNode *N, unsigned NumElems,
|
||||
continue;
|
||||
|
||||
LoadSDNode *LD = cast<LoadSDNode>(Elt);
|
||||
if (!TLI.isConsecutiveLoad(LD, LDBase, EVT.getSizeInBits()/8, i, MFI))
|
||||
if (!TLI.isConsecutiveLoad(LD, LDBase, EltVT.getSizeInBits()/8, i, MFI))
|
||||
return false;
|
||||
LastLoadedElt = i;
|
||||
}
|
||||
@ -8215,7 +8215,7 @@ static SDValue PerformShuffleCombine(SDNode *N, SelectionDAG &DAG,
|
||||
const TargetLowering &TLI) {
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
EVT VT = N->getValueType(0);
|
||||
EVT EVT = VT.getVectorElementType();
|
||||
EVT EltVT = VT.getVectorElementType();
|
||||
ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(N);
|
||||
unsigned NumElems = VT.getVectorNumElements();
|
||||
|
||||
@ -8226,7 +8226,7 @@ static SDValue PerformShuffleCombine(SDNode *N, SelectionDAG &DAG,
|
||||
MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo();
|
||||
LoadSDNode *LD = NULL;
|
||||
unsigned LastLoadedElt;
|
||||
if (!EltsFromConsecutiveLoads(SVN, NumElems, EVT, LD, LastLoadedElt, DAG,
|
||||
if (!EltsFromConsecutiveLoads(SVN, NumElems, EltVT, LD, LastLoadedElt, DAG,
|
||||
MFI, TLI))
|
||||
return SDValue();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user