fix hte last cellspu failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96854 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-02-23 01:37:39 +00:00
parent 8843fd39c8
commit 674b75617c

View File

@ -767,21 +767,22 @@ SPUDAGToDAGISel::Select(SDNode *N) {
} }
SDNode *shufMaskLoad = emitBuildVector(shufMask.getNode()); SDNode *shufMaskLoad = emitBuildVector(shufMask.getNode());
SDNode *PromoteScalar = CurDAG->getNode(SPUISD::PREFSLOT2VEC, dl,
Op0VecVT, Op0).getNode(); HandleSDNode PromoteScalar(CurDAG->getNode(SPUISD::PREFSLOT2VEC, dl,
Op0VecVT, Op0));
SDValue PromScalar;
if (SDNode *N = SelectCode(PromoteScalar.getValue().getNode()))
PromScalar = SDValue(N, 0);
else
PromScalar = PromoteScalar.getValue();
SDValue zextShuffle = SDValue zextShuffle =
CurDAG->getNode(SPUISD::SHUFB, dl, OpVecVT, CurDAG->getNode(SPUISD::SHUFB, dl, OpVecVT,
SDValue(PromoteScalar, 0), PromScalar, PromScalar,
SDValue(PromoteScalar, 0),
SDValue(shufMaskLoad, 0)); SDValue(shufMaskLoad, 0));
// N.B.: BIT_CONVERT replaces and updates the zextShuffle node, so we HandleSDNode Dummy2(zextShuffle);
// re-use it in the VEC2PREFSLOT selection without needing to explicitly
// call SelectCode (it's already done for us.)
HandleSDNode Dummy2(zextShuffle); //CurDAG->getNode(ISD::BIT_CONVERT, dl, OpVecVT,
// zextShuffle));
if (SDNode *N = SelectCode(Dummy2.getValue().getNode())) if (SDNode *N = SelectCode(Dummy2.getValue().getNode()))
return N; return N;
HandleSDNode Dummy(CurDAG->getNode(SPUISD::VEC2PREFSLOT, dl, OpVT, HandleSDNode Dummy(CurDAG->getNode(SPUISD::VEC2PREFSLOT, dl, OpVT,