Lines Matching refs:APFloat
76 bool ConstantFPSDNode::isExactlyValue(const APFloat& V) const { in isExactlyValue()
81 const APFloat& Val) { in isValueValidForType()
85 APFloat Val2 = APFloat(Val); in isValueValidForType()
88 APFloat::rmNearestTiesToEven, in isValueValidForType()
1219 SDValue SelectionDAG::getConstantFP(const APFloat& V, SDLoc DL, EVT VT, in getConstantFP()
1263 return getConstantFP(APFloat((float)Val), DL, VT, isTarget); in getConstantFP()
1265 return getConstantFP(APFloat(Val), DL, VT, isTarget); in getConstantFP()
1269 APFloat apf = APFloat(Val); in getConstantFP()
1270 apf.convert(EVTToAPFloatSemantics(EltVT), APFloat::rmNearestTiesToEven, in getConstantFP()
1969 APFloat::cmpResult R = N1C->getValueAPF().compare(N2C->getValueAPF()); in FoldSetCC()
1972 case ISD::SETEQ: if (R==APFloat::cmpUnordered) in FoldSetCC()
1975 case ISD::SETOEQ: return getConstant(R==APFloat::cmpEqual, dl, VT); in FoldSetCC()
1976 case ISD::SETNE: if (R==APFloat::cmpUnordered) in FoldSetCC()
1979 case ISD::SETONE: return getConstant(R==APFloat::cmpGreaterThan || in FoldSetCC()
1980 R==APFloat::cmpLessThan, dl, VT); in FoldSetCC()
1981 case ISD::SETLT: if (R==APFloat::cmpUnordered) in FoldSetCC()
1984 case ISD::SETOLT: return getConstant(R==APFloat::cmpLessThan, dl, VT); in FoldSetCC()
1985 case ISD::SETGT: if (R==APFloat::cmpUnordered) in FoldSetCC()
1988 case ISD::SETOGT: return getConstant(R==APFloat::cmpGreaterThan, dl, VT); in FoldSetCC()
1989 case ISD::SETLE: if (R==APFloat::cmpUnordered) in FoldSetCC()
1992 case ISD::SETOLE: return getConstant(R==APFloat::cmpLessThan || in FoldSetCC()
1993 R==APFloat::cmpEqual, dl, VT); in FoldSetCC()
1994 case ISD::SETGE: if (R==APFloat::cmpUnordered) in FoldSetCC()
1997 case ISD::SETOGE: return getConstant(R==APFloat::cmpGreaterThan || in FoldSetCC()
1998 R==APFloat::cmpEqual, dl, VT); in FoldSetCC()
1999 case ISD::SETO: return getConstant(R!=APFloat::cmpUnordered, dl, VT); in FoldSetCC()
2000 case ISD::SETUO: return getConstant(R==APFloat::cmpUnordered, dl, VT); in FoldSetCC()
2001 case ISD::SETUEQ: return getConstant(R==APFloat::cmpUnordered || in FoldSetCC()
2002 R==APFloat::cmpEqual, dl, VT); in FoldSetCC()
2003 case ISD::SETUNE: return getConstant(R!=APFloat::cmpEqual, dl, VT); in FoldSetCC()
2004 case ISD::SETULT: return getConstant(R==APFloat::cmpUnordered || in FoldSetCC()
2005 R==APFloat::cmpLessThan, dl, VT); in FoldSetCC()
2006 case ISD::SETUGT: return getConstant(R==APFloat::cmpGreaterThan || in FoldSetCC()
2007 R==APFloat::cmpUnordered, dl, VT); in FoldSetCC()
2008 case ISD::SETULE: return getConstant(R!=APFloat::cmpGreaterThan, dl, VT); in FoldSetCC()
2009 case ISD::SETUGE: return getConstant(R!=APFloat::cmpLessThan, dl, VT); in FoldSetCC()
2884 APFloat apf(EVTToAPFloatSemantics(VT), in getNode()
2888 APFloat::rmNearestTiesToEven); in getNode()
2893 return getConstantFP(APFloat(APFloat::IEEEhalf, Val), DL, VT); in getNode()
2895 return getConstantFP(APFloat(APFloat::IEEEsingle, Val), DL, VT); in getNode()
2897 return getConstantFP(APFloat(APFloat::IEEEdouble, Val), DL, VT); in getNode()
2899 return getConstantFP(APFloat(APFloat::IEEEquad, Val), DL, VT); in getNode()
2920 APFloat V = C->getValueAPF(); // make copy in getNode()
2929 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardPositive); in getNode()
2930 if (fs == APFloat::opOK || fs == APFloat::opInexact) in getNode()
2935 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardZero); in getNode()
2936 if (fs == APFloat::opOK || fs == APFloat::opInexact) in getNode()
2941 APFloat::opStatus fs = V.roundToIntegral(APFloat::rmTowardNegative); in getNode()
2942 if (fs == APFloat::opOK || fs == APFloat::opInexact) in getNode()
2951 APFloat::rmNearestTiesToEven, &ignored); in getNode()
2960 APFloat::opStatus s = V.convertToInteger(x, VT.getSizeInBits(), in getNode()
2962 APFloat::rmTowardZero, &ignored); in getNode()
2963 if (s==APFloat::opInvalidOp) // inexact is OK, in fact usual in getNode()
3747 APFloat V1 = N1CFP->getValueAPF(), V2 = N2CFP->getValueAPF(); in getNode()
3748 APFloat::opStatus s; in getNode()
3751 s = V1.add(V2, APFloat::rmNearestTiesToEven); in getNode()
3752 if (!HasFPExceptions || s != APFloat::opInvalidOp) in getNode()
3756 s = V1.subtract(V2, APFloat::rmNearestTiesToEven); in getNode()
3757 if (!HasFPExceptions || s!=APFloat::opInvalidOp) in getNode()
3761 s = V1.multiply(V2, APFloat::rmNearestTiesToEven); in getNode()
3762 if (!HasFPExceptions || s!=APFloat::opInvalidOp) in getNode()
3766 s = V1.divide(V2, APFloat::rmNearestTiesToEven); in getNode()
3767 if (!HasFPExceptions || (s!=APFloat::opInvalidOp && in getNode()
3768 s!=APFloat::opDivByZero)) { in getNode()
3774 if (!HasFPExceptions || (s!=APFloat::opInvalidOp && in getNode()
3775 s!=APFloat::opDivByZero)) { in getNode()
3787 APFloat V = N1CFP->getValueAPF(); // make copy in getNode()
3792 APFloat::rmNearestTiesToEven, &ignored); in getNode()
3904 APFloat V1 = N1CFP->getValueAPF(); in getNode()
3905 const APFloat &V2 = N2CFP->getValueAPF(); in getNode()
3906 const APFloat &V3 = N3CFP->getValueAPF(); in getNode()
3907 APFloat::opStatus s = in getNode()
3908 V1.fusedMultiplyAdd(V2, V3, APFloat::rmNearestTiesToEven); in getNode()
3909 if (!TLI->hasFloatingPointExceptions() || s != APFloat::opInvalidOp) in getNode()
4050 return DAG.getConstantFP(APFloat(DAG.EVTToAPFloatSemantics(VT), Val), dl, in getMemsetValue()
7273 APFloat APF = CN->getValueAPF(); in getConstantFPSplatPow2ToLog2Int()
7274 if (APF.convertToInteger(IntVal, APFloat::rmTowardZero, &IsExact) != in getConstantFPSplatPow2ToLog2Int()
7275 APFloat::opOK || in getConstantFPSplatPow2ToLog2Int()