forked from OSchip/llvm-project
Follow the same routine to add target float expansion hook
llvm-svn: 165707
This commit is contained in:
parent
eb18262908
commit
6b49c2f69c
|
@ -1245,32 +1245,30 @@ bool DAGTypeLegalizer::ExpandFloatOperand(SDNode *N, unsigned OpNo) {
|
||||||
DEBUG(dbgs() << "Expand float operand: "; N->dump(&DAG); dbgs() << "\n");
|
DEBUG(dbgs() << "Expand float operand: "; N->dump(&DAG); dbgs() << "\n");
|
||||||
SDValue Res = SDValue();
|
SDValue Res = SDValue();
|
||||||
|
|
||||||
if (TLI.getOperationAction(N->getOpcode(), N->getOperand(OpNo).getValueType())
|
// See if the target wants to custom expand this node.
|
||||||
== TargetLowering::Custom)
|
if (CustomLowerNode(N, N->getOperand(OpNo).getValueType(), false))
|
||||||
Res = TLI.LowerOperation(SDValue(N, 0), DAG);
|
return false;
|
||||||
|
|
||||||
if (Res.getNode() == 0) {
|
switch (N->getOpcode()) {
|
||||||
switch (N->getOpcode()) {
|
default:
|
||||||
default:
|
#ifndef NDEBUG
|
||||||
#ifndef NDEBUG
|
dbgs() << "ExpandFloatOperand Op #" << OpNo << ": ";
|
||||||
dbgs() << "ExpandFloatOperand Op #" << OpNo << ": ";
|
N->dump(&DAG); dbgs() << "\n";
|
||||||
N->dump(&DAG); dbgs() << "\n";
|
#endif
|
||||||
#endif
|
llvm_unreachable("Do not know how to expand this operator's operand!");
|
||||||
llvm_unreachable("Do not know how to expand this operator's operand!");
|
|
||||||
|
|
||||||
case ISD::BITCAST: Res = ExpandOp_BITCAST(N); break;
|
case ISD::BITCAST: Res = ExpandOp_BITCAST(N); break;
|
||||||
case ISD::BUILD_VECTOR: Res = ExpandOp_BUILD_VECTOR(N); break;
|
case ISD::BUILD_VECTOR: Res = ExpandOp_BUILD_VECTOR(N); break;
|
||||||
case ISD::EXTRACT_ELEMENT: Res = ExpandOp_EXTRACT_ELEMENT(N); break;
|
case ISD::EXTRACT_ELEMENT: Res = ExpandOp_EXTRACT_ELEMENT(N); break;
|
||||||
|
|
||||||
case ISD::BR_CC: Res = ExpandFloatOp_BR_CC(N); break;
|
case ISD::BR_CC: Res = ExpandFloatOp_BR_CC(N); break;
|
||||||
case ISD::FP_ROUND: Res = ExpandFloatOp_FP_ROUND(N); break;
|
case ISD::FP_ROUND: Res = ExpandFloatOp_FP_ROUND(N); break;
|
||||||
case ISD::FP_TO_SINT: Res = ExpandFloatOp_FP_TO_SINT(N); break;
|
case ISD::FP_TO_SINT: Res = ExpandFloatOp_FP_TO_SINT(N); break;
|
||||||
case ISD::FP_TO_UINT: Res = ExpandFloatOp_FP_TO_UINT(N); break;
|
case ISD::FP_TO_UINT: Res = ExpandFloatOp_FP_TO_UINT(N); break;
|
||||||
case ISD::SELECT_CC: Res = ExpandFloatOp_SELECT_CC(N); break;
|
case ISD::SELECT_CC: Res = ExpandFloatOp_SELECT_CC(N); break;
|
||||||
case ISD::SETCC: Res = ExpandFloatOp_SETCC(N); break;
|
case ISD::SETCC: Res = ExpandFloatOp_SETCC(N); break;
|
||||||
case ISD::STORE: Res = ExpandFloatOp_STORE(cast<StoreSDNode>(N),
|
case ISD::STORE: Res = ExpandFloatOp_STORE(cast<StoreSDNode>(N),
|
||||||
OpNo); break;
|
OpNo); break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the result is null, the sub-method took care of registering results etc.
|
// If the result is null, the sub-method took care of registering results etc.
|
||||||
|
|
Loading…
Reference in New Issue