forked from OSchip/llvm-project
[LegalizeTypes] Remove SoftenFloat handling from ExpandIntRes_LLROUND_LLRINT and remove assert from the strict fp path.
These were both recently added. While the call to GetSoftenedFloat is a little more optimal, we don't do it in the expand for FP_TO_SINT/UINT so there's no real reason to do it here. This avoids a FIXME for strict fp.
This commit is contained in:
parent
5a56d2aa33
commit
bfbbf0aba8
|
@ -2629,9 +2629,6 @@ void DAGTypeLegalizer::ExpandIntRes_LLROUND_LLRINT(SDNode *N, SDValue &Lo,
|
||||||
EVT RetVT = N->getValueType(0);
|
EVT RetVT = N->getValueType(0);
|
||||||
|
|
||||||
if (N->isStrictFPOpcode()) {
|
if (N->isStrictFPOpcode()) {
|
||||||
// FIXME: Support softening for strict fp!
|
|
||||||
assert(getTypeAction(VT) != TargetLowering::TypeSoftenFloat &&
|
|
||||||
"Softening strict fp calls not supported yet!");
|
|
||||||
std::pair<SDValue, SDValue> Tmp = ExpandChainLibCall(LC, N, true);
|
std::pair<SDValue, SDValue> Tmp = ExpandChainLibCall(LC, N, true);
|
||||||
SplitInteger(Tmp.first, Lo, Hi);
|
SplitInteger(Tmp.first, Lo, Hi);
|
||||||
ReplaceValueWith(SDValue(N, 1), Tmp.second);
|
ReplaceValueWith(SDValue(N, 1), Tmp.second);
|
||||||
|
@ -2640,12 +2637,6 @@ void DAGTypeLegalizer::ExpandIntRes_LLROUND_LLRINT(SDNode *N, SDValue &Lo,
|
||||||
|
|
||||||
TargetLowering::MakeLibCallOptions CallOptions;
|
TargetLowering::MakeLibCallOptions CallOptions;
|
||||||
CallOptions.setSExt(true);
|
CallOptions.setSExt(true);
|
||||||
|
|
||||||
if (getTypeAction(VT) == TargetLowering::TypeSoftenFloat) {
|
|
||||||
Op = GetSoftenedFloat(Op);
|
|
||||||
CallOptions.setTypeListBeforeSoften(VT, RetVT, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
SplitInteger(TLI.makeLibCall(DAG, LC, RetVT, Op, CallOptions, dl).first,
|
SplitInteger(TLI.makeLibCall(DAG, LC, RetVT, Op, CallOptions, dl).first,
|
||||||
Lo, Hi);
|
Lo, Hi);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue