mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-20 09:30:43 +00:00
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:
parent
8843fd39c8
commit
674b75617c
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user