forked from OSchip/llvm-project
[SelectionDAG] Remove the code that handles SETCC with a scalar result type from vector widening.
There's no such thing as a setcc with vector operands and scalar result. And if we're trying to widen the result we would have to already be looking at a vector result type. So this patch renames the VSETCC function as the SETCC function and delete the original SETCC function. llvm-svn: 319799
This commit is contained in:
parent
558cc48b44
commit
8adcbe8c9f
|
@ -731,7 +731,6 @@ private:
|
|||
SDValue WidenVecRes_SETCC(SDNode* N);
|
||||
SDValue WidenVecRes_UNDEF(SDNode *N);
|
||||
SDValue WidenVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N);
|
||||
SDValue WidenVecRes_VSETCC(SDNode* N);
|
||||
|
||||
SDValue WidenVecRes_Ternary(SDNode *N);
|
||||
SDValue WidenVecRes_Binary(SDNode *N);
|
||||
|
|
|
@ -3225,19 +3225,6 @@ SDValue DAGTypeLegalizer::WidenVecRes_SELECT_CC(SDNode *N) {
|
|||
N->getOperand(1), InOp1, InOp2, N->getOperand(4));
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::WidenVecRes_SETCC(SDNode *N) {
|
||||
assert(N->getValueType(0).isVector() ==
|
||||
N->getOperand(0).getValueType().isVector() &&
|
||||
"Scalar/Vector type mismatch");
|
||||
if (N->getValueType(0).isVector()) return WidenVecRes_VSETCC(N);
|
||||
|
||||
EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
|
||||
SDValue InOp1 = GetWidenedVector(N->getOperand(0));
|
||||
SDValue InOp2 = GetWidenedVector(N->getOperand(1));
|
||||
return DAG.getNode(ISD::SETCC, SDLoc(N), WidenVT,
|
||||
InOp1, InOp2, N->getOperand(2));
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::WidenVecRes_UNDEF(SDNode *N) {
|
||||
EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
|
||||
return DAG.getUNDEF(WidenVT);
|
||||
|
@ -3268,7 +3255,7 @@ SDValue DAGTypeLegalizer::WidenVecRes_VECTOR_SHUFFLE(ShuffleVectorSDNode *N) {
|
|||
return DAG.getVectorShuffle(WidenVT, dl, InOp1, InOp2, NewMask);
|
||||
}
|
||||
|
||||
SDValue DAGTypeLegalizer::WidenVecRes_VSETCC(SDNode *N) {
|
||||
SDValue DAGTypeLegalizer::WidenVecRes_SETCC(SDNode *N) {
|
||||
assert(N->getValueType(0).isVector() &&
|
||||
N->getOperand(0).getValueType().isVector() &&
|
||||
"Operands must be vectors");
|
||||
|
|
Loading…
Reference in New Issue