Home | History | Annotate | Download | only in Support

Lines Matching full:semantics

43   /* Represents floating point arithmetic semantics.  */
580 semantics = ourSemantics;
596 assert(semantics == rhs.semantics);
634 unsigned bitsToPreserve = semantics->precision - 1;
642 unsigned QNaNBit = semantics->precision - 2;
661 if (semantics == &APFloat::x87DoubleExtended)
676 if (semantics != rhs.semantics) {
678 initialize(rhs.semantics);
688 return isFiniteNonZero() && (exponent == semantics->minExponent) &&
690 semantics->precision - 1) == 0);
698 return isFiniteNonZero() && exponent == semantics->minExponent &&
713 PartCount*integerPartWidth - semantics->precision + 1;
735 PartCount*integerPartWidth - semantics->precision + 1;
750 return isFiniteNonZero() && exponent == semantics->maxExponent
758 if (semantics != rhs.semantics ||
805 initialize(rhs.semantics);
822 return partCountForBits(semantics->precision + 1);
826 APFloat::semanticsPrecision(const fltSemantics &semantics)
828 return semantics.precision;
873 assert(semantics == rhs.semantics);
888 assert(semantics == rhs.semantics);
909 assert(semantics == rhs.semantics);
911 precision = semantics->precision;
945 const fltSemantics *savedSemantics = semantics;
959 /* Create new semantics. */
960 extendedSemantics = *semantics;
967 semantics = &extendedSemantics;
979 semantics = savedSemantics;
1025 assert(semantics == rhs.semantics);
1047 unsigned int precision = semantics->precision;
1128 assert(bits < semantics->precision);
1145 assert(semantics == rhs.semantics);
1181 exponent = semantics->maxExponent;
1183 semantics->precision);
1247 exponentChange = omsb - semantics->precision;
1251 if (exponent + exponentChange > semantics->maxExponent)
1256 if (exponent + exponentChange < semantics->minExponent)
1257 exponentChange = semantics->minExponent - exponent;
1300 exponent = semantics->minExponent;
1306 if (omsb == (unsigned) semantics->precision + 1) {
1310 if (exponent == semantics->maxExponent) {
1324 if (omsb == semantics->precision)
1328 assert(omsb < semantics->precision);
1821 if (isFiniteNonZero() && exponent+1 >= (int)semanticsPrecision(*semantics))
1830 APInt IntegerConstant(NextPowerOf2(semanticsPrecision(*semantics)), 1);
1831 IntegerConstant <<= semanticsPrecision(*semantics)-1;
1832 APFloat MagicConstant(*semantics);
1863 assert(semantics == rhs.semantics);
1945 const fltSemantics &fromSemantics = *semantics;
1962 // If this is a truncation of a denormal number, and the target semantics
1963 // has larger exponent range than the source semantics (this can happen
2002 // Now that we have the right storage, switch the semantics.
2003 semantics = &toSemantics;
2018 if (!X86SpecialNan && semantics == &APFloat::x87DoubleExtended)
2019 APInt::tcSetBit(significandParts(), semantics->precision - 1);
2078 truncatedBits = semantics->precision -1U - exponent;
2088 if (bits < semantics->precision) {
2089 /* We truncate (semantics->precision - bits) bits. */
2090 truncatedBits = semantics->precision - bits;
2094 APInt::tcExtract(parts, dstPartsCount, src, semantics->precision, 0);
2095 APInt::tcShiftLeft(parts, dstPartsCount, bits - semantics->precision);
2219 precision = semantics->precision;
2372 expAdjustment += semantics->precision;
2395 parts = partCountForBits(semantics->precision + 11);
2405 excessPrecision = calcSemantics.precision - semantics->precision;
2429 if (decSig.exponent < semantics->minExponent) {
2430 excessPrecision += (semantics->minExponent - decSig.exponent);
2457 exponent = (decSig.exponent + semantics->precision
2516 8651 * (semantics->minExponent - (int) semantics->precision)) {
2524 >= 12655 * semantics->maxExponent) {
2732 valueBits = semantics->precision + 3;
2819 Arg.semantics->precision);
2823 Arg.semantics->precision, Arg.exponent,
2841 assert(semantics == (const llvm::fltSemantics*)&x87DoubleExtended);
2873 assert(semantics == (const llvm::fltSemantics*)&PPCDoubleDouble);
2886 fltSemantics extendedSemantics = *semantics;
2924 assert(semantics == (const llvm::fltSemantics*)&IEEEquad);
2960 assert(semantics == (const llvm::fltSemantics*)&IEEEdouble);
2990 assert(semantics == (const llvm::fltSemantics*)&IEEEsingle);
3019 assert(semantics == (const llvm::fltSemantics*)&IEEEhalf);
3052 if (semantics == (const llvm::fltSemantics*)&IEEEhalf)
3055 if (semantics == (const llvm::fltSemantics*)&IEEEsingle)
3058 if (semantics == (const llvm::fltSemantics*)&IEEEdouble)
3061 if (semantics == (const llvm::fltSemantics*)&IEEEquad)
3064 if (semantics == (const llvm::fltSemantics*)&PPCDoubleDouble)
3067 assert(semantics == (const llvm::fltSemantics*)&x87DoubleExtended &&
3075 assert(semantics == (const llvm::fltSemantics*)&IEEEsingle &&
3076 "Float semantics are not IEEEsingle");
3084 assert(semantics == (const llvm::fltSemantics*)&IEEEdouble &&
3085 "Float semantics are not IEEEdouble");
3341 /// semantics.
3349 exponent = semantics->maxExponent;
3359 PartCount*integerPartWidth - semantics->precision;
3364 /// semantics.
3372 exponent = semantics->minExponent;
3541 int exp = exponent - ((int) semantics->precision - 1);
3542 APInt significand(semantics->precision,
3544 partCountForBits(semantics->precision)));
3553 FormatPrecision = (semantics->precision * 59 + 195) / 196;
3566 significand = significand.zext(semantics->precision + exp);
3578 // <= semantics->precision + e * 137 / 59
3581 unsigned precision = semantics->precision + (137 * texp + 136) / 59;
3718 if (significandLSB() != semantics->precision - 1)
3722 APFloat reciprocal(*semantics, 1ULL);
3732 reciprocal.significandLSB() == reciprocal.semantics->precision - 1);
3746 return !APInt::tcExtractBit(significandParts(), semantics->precision - 2);
3797 exponent = semantics->maxExponent + 1;
3807 // 1. exponent != semantics->minExponent. This implies we are not in the
3811 exponent != semantics->minExponent && isSignificandAllZeros();
3833 APInt::tcSetBit(Parts, semantics->precision - 1);
3850 APInt::tcSetBit(Parts, semantics->precision - 1);
3851 assert(exponent != semantics->maxExponent &&
3853 " by the given floating point semantics.");
3873 exponent = semantics->maxExponent + 1;
3881 exponent = semantics->minExponent-1;