mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
Remove some dead code from SPU BE that remained
from 64bit vector support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111910 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -514,8 +514,6 @@ SPUTargetLowering::getTargetNodeName(unsigned Opcode) const
|
|||||||
node_names[(unsigned) SPUISD::ADD64_MARKER] = "SPUISD::ADD64_MARKER";
|
node_names[(unsigned) SPUISD::ADD64_MARKER] = "SPUISD::ADD64_MARKER";
|
||||||
node_names[(unsigned) SPUISD::SUB64_MARKER] = "SPUISD::SUB64_MARKER";
|
node_names[(unsigned) SPUISD::SUB64_MARKER] = "SPUISD::SUB64_MARKER";
|
||||||
node_names[(unsigned) SPUISD::MUL64_MARKER] = "SPUISD::MUL64_MARKER";
|
node_names[(unsigned) SPUISD::MUL64_MARKER] = "SPUISD::MUL64_MARKER";
|
||||||
node_names[(unsigned) SPUISD::HALF2VEC] = "SPUISD::HALF2VEC";
|
|
||||||
node_names[(unsigned) SPUISD::VEC2HALF] = "SPUISD::VEC2HALF";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<unsigned, const char *>::iterator i = node_names.find(Opcode);
|
std::map<unsigned, const char *>::iterator i = node_names.find(Opcode);
|
||||||
@@ -736,14 +734,12 @@ LowerSTORE(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
|
|||||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
unsigned alignment = SN->getAlignment();
|
unsigned alignment = SN->getAlignment();
|
||||||
const bool isVec = VT.isVector();
|
|
||||||
EVT eltTy = isVec ? VT.getVectorElementType(): VT;
|
|
||||||
|
|
||||||
switch (SN->getAddressingMode()) {
|
switch (SN->getAddressingMode()) {
|
||||||
case ISD::UNINDEXED: {
|
case ISD::UNINDEXED: {
|
||||||
// The vector type we really want to load from the 16-byte chunk.
|
// The vector type we really want to load from the 16-byte chunk.
|
||||||
EVT vecVT = EVT::getVectorVT(*DAG.getContext(),
|
EVT vecVT = EVT::getVectorVT(*DAG.getContext(),
|
||||||
eltTy, (128 / eltTy.getSizeInBits()));
|
VT, (128 / VT.getSizeInBits()));
|
||||||
|
|
||||||
SDValue alignLoadVec;
|
SDValue alignLoadVec;
|
||||||
SDValue basePtr = SN->getBasePtr();
|
SDValue basePtr = SN->getBasePtr();
|
||||||
@@ -846,19 +842,11 @@ LowerSTORE(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDValue insertEltOp;
|
SDValue insertEltOp = DAG.getNode(SPUISD::SHUFFLE_MASK, dl, vecVT,
|
||||||
SDValue vectorizeOp;
|
insertEltOffs);
|
||||||
if (isVec)
|
SDValue vectorizeOp = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, vecVT,
|
||||||
{
|
theValue);
|
||||||
// FIXME: this works only if the vector is 64bit!
|
|
||||||
insertEltOp = DAG.getNode(SPUISD::SHUFFLE_MASK, dl, MVT::v2i64, insertEltOffs);
|
|
||||||
vectorizeOp = DAG.getNode(SPUISD::HALF2VEC, dl, vecVT, theValue);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
insertEltOp = DAG.getNode(SPUISD::SHUFFLE_MASK, dl, vecVT, insertEltOffs);
|
|
||||||
vectorizeOp = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, vecVT, theValue);
|
|
||||||
}
|
|
||||||
result = DAG.getNode(SPUISD::SHUFB, dl, vecVT,
|
result = DAG.getNode(SPUISD::SHUFB, dl, vecVT,
|
||||||
vectorizeOp, alignLoadVec,
|
vectorizeOp, alignLoadVec,
|
||||||
DAG.getNode(ISD::BIT_CONVERT, dl,
|
DAG.getNode(ISD::BIT_CONVERT, dl,
|
||||||
|
|||||||
@@ -54,8 +54,6 @@ namespace llvm {
|
|||||||
ADD64_MARKER, ///< i64 addition marker
|
ADD64_MARKER, ///< i64 addition marker
|
||||||
SUB64_MARKER, ///< i64 subtraction marker
|
SUB64_MARKER, ///< i64 subtraction marker
|
||||||
MUL64_MARKER, ///< i64 multiply marker
|
MUL64_MARKER, ///< i64 multiply marker
|
||||||
HALF2VEC, ///< Promote 64 bit vector to 128 bits
|
|
||||||
VEC2HALF, ///< Extract first 64 bits from 128 bit vector
|
|
||||||
LAST_SPUISD ///< Last user-defined instruction
|
LAST_SPUISD ///< Last user-defined instruction
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,12 +117,6 @@ def SPUprefslot2vec: SDNode<"SPUISD::PREFSLOT2VEC", SDTprefslot2vec, []>;
|
|||||||
def SPU_vec_demote : SDTypeProfile<1, 1, []>;
|
def SPU_vec_demote : SDTypeProfile<1, 1, []>;
|
||||||
def SPUvec2prefslot: SDNode<"SPUISD::VEC2PREFSLOT", SPU_vec_demote, []>;
|
def SPUvec2prefslot: SDNode<"SPUISD::VEC2PREFSLOT", SPU_vec_demote, []>;
|
||||||
|
|
||||||
def SPU_half_2_vec : SDTypeProfile<1, 1, []>;
|
|
||||||
def SPUhalf2vec: SDNode<"SPUISD::HALF2VEC", SPU_half_2_vec, []>;
|
|
||||||
|
|
||||||
def SPU_vec_2_half : SDTypeProfile<1, 1, []>;
|
|
||||||
def SPUvec2half: SDNode<"SPUISD::VEC2HALF", SPU_vec_2_half, []>;
|
|
||||||
|
|
||||||
// Address high and low components, used for [r+r] type addressing
|
// Address high and low components, used for [r+r] type addressing
|
||||||
def SPUhi : SDNode<"SPUISD::Hi", SDTIntBinOp, []>;
|
def SPUhi : SDNode<"SPUISD::Hi", SDTIntBinOp, []>;
|
||||||
def SPUlo : SDNode<"SPUISD::Lo", SDTIntBinOp, []>;
|
def SPUlo : SDNode<"SPUISD::Lo", SDTIntBinOp, []>;
|
||||||
|
|||||||
Reference in New Issue
Block a user