Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:APFloat

75 bool ConstantFPSDNode::isExactlyValue(const APFloat& V) const {
80 const APFloat& Val) {
84 APFloat Val2 = APFloat(Val);
87 APFloat::rmNearestTiesToEven,
1025 SDValue SelectionDAG::getConstantFP(const APFloat& V, EVT VT, bool isTarget) {
1066 return getConstantFP(APFloat((float)Val), VT, isTarget);
1068 return getConstantFP(APFloat(Val), VT, isTarget);
1072 APFloat apf = APFloat(Val);
1073 apf.convert(EVTToAPFloatSemantics(EltVT), APFloat::rmNearestTiesToEven,
1603 APFloat::cmpResult R = N1C->getValueAPF().compare(N2C->getValueAPF());
1606 case ISD::SETEQ: if (R==APFloat::cmpUnordered)
1609 case ISD::SETOEQ: return getConstant(R==APFloat::cmpEqual, VT);
1610 case ISD::SETNE: if (R==APFloat::cmpUnordered)
1613 case ISD::SETONE: return getConstant(R==APFloat::cmpGreaterThan ||
1614 R==APFloat::cmpLessThan, VT);
1615 case ISD::SETLT: if (R==APFloat::cmpUnordered)
1618 case ISD::SETOLT: return getConstant(R==APFloat::cmpLessThan, VT);
1619 case ISD::SETGT: if (R==APFloat::cmpUnordered)
1622 case ISD::SETOGT: return getConstant(R==APFloat::cmpGreaterThan, VT);
1623 case ISD::SETLE: if (R==APFloat::cmpUnordered)
1626 case ISD::SETOLE: return getConstant(R==APFloat::cmpLessThan ||
1627 R==APFloat::cmpEqual, VT);
1628 case ISD::SETGE: if (R==APFloat::cmpUnordered)
1631 case ISD::SETOGE: return getConstant(R==APFloat::cmpGreaterThan ||
1632 R==APFloat::cmpEqual, VT);
1633 case ISD::SETO: return getConstant(R!=APFloat::cmpUnordered, VT);
1634 case ISD::SETUO: return getConstant(R==APFloat::cmpUnordered, VT);
1635 case ISD::SETUEQ: return getConstant(R==APFloat::cmpUnordered ||
1636 R==APFloat::cmpEqual, VT);
1637 case ISD::SETUNE: return getConstant(R!=APFloat::cmpEqual, VT);
1638 case ISD::SETULT: return getConstant(R==APFloat::cmpUnordered ||
1639 R==APFloat::cmpLessThan, VT);
1640 case ISD::SETUGT: return getConstant(R==APFloat::cmpGreaterThan ||
1641 R==APFloat::cmpUnordered, VT);
1642 case ISD::SETULE: return getConstant(R!=APFloat::cmpGreaterThan, VT);
1643 case ISD::SETUGE: return getConstant(R!=APFloat::cmpLessThan, VT);
2434 APFloat apf(EVTToAPFloatSemantics(VT),
2438 APFloat::rmNearestTiesToEven);
2443 return getConstantFP(APFloat(APFloat::IEEEsingle, Val), VT);
2445 return getConstantFP(APFloat(APFloat::IEEEdouble, Val), VT);
2462 APFloat V = C->getValueAPF(); // make copy
2471 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardPositive);
2472 if (fs == APFloat::opOK || fs == APFloat::opInexact)
2477 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardZero);
2478 if (fs == APFloat::opOK || fs == APFloat::opInexact)
2483 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardNegative);
2484 if (fs == APFloat::opOK || fs == APFloat::opInexact)
2493 APFloat::rmNearestTiesToEven, &ignored);
2502 APFloat::opStatus s = V.convertToInteger(x, VT.getSizeInBits(),
2504 APFloat::rmTowardZero, &ignored);
2505 if (s==APFloat::opInvalidOp) // inexact is OK, in fact usual
3110 APFloat V1 = N1CFP->getValueAPF(), V2 = N2CFP->getValueAPF();
3111 APFloat::opStatus s;
3114 s = V1.add(V2, APFloat::rmNearestTiesToEven);
3115 if (s != APFloat::opInvalidOp)
3119 s = V1.subtract(V2, APFloat::rmNearestTiesToEven);
3120 if (s!=APFloat::opInvalidOp)
3124 s = V1.multiply(V2, APFloat::rmNearestTiesToEven);
3125 if (s!=APFloat::opInvalidOp)
3129 s = V1.divide(V2, APFloat::rmNearestTiesToEven);
3130 if (s!=APFloat::opInvalidOp && s!=APFloat::opDivByZero)
3134 s = V1.mod(V2, APFloat::rmNearestTiesToEven);
3135 if (s!=APFloat::opInvalidOp && s!=APFloat::opDivByZero)
3146 APFloat V = N1CFP->getValueAPF(); // make copy
3151 APFloat::rmNearestTiesToEven, &ignored);
3394 return DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(VT), Val), VT);