Lines Matching full:parts

159    Therefore it has two 53-bit mantissa parts that aren't necessarily adjacent
305 /* A tight upper bound on number of parts required to hold the value
310 However, whilst the result may require only this many parts,
314 requires two parts to hold the single-part result). So we add an
646 lostFractionThroughTruncation(const APFloatBase::integerPart *parts,
652 lsb = APInt::tcLSB(parts, partCount);
660 APInt::tcExtractBit(parts, bits - 1))
668 shiftRight(APFloatBase::integerPart *dst, unsigned int parts, unsigned int bits)
672 lost_fraction = lostFractionThroughTruncation(dst, parts, bits);
674 APInt::tcShiftRight(dst, parts, bits);
716 ulpsFromBoundary(const APFloatBase::integerPart *parts, unsigned int bits,
727 part = parts[count] & (~(APFloatBase::integerPart) 0 >> (APFloatBase::integerPartWidth - partBits));
743 if (parts[count])
746 return parts[0];
749 if (~parts[count])
752 return -parts[0];
758 /* Place pow(5, power) in DST, and return the number of parts used.
798 /* Now result is in p1 with partsCount parts and p2 is scratch
882 significand.parts = new integerPart[count];
887 delete [] significand.parts;
1025 const integerPart *Parts = significandParts();
1028 if (~Parts[i])
1038 if (~(Parts[PartCount - 1] | HighBitFill))
1047 const integerPart *Parts = significandParts();
1049 if (Parts[0] & 1)
1054 if (~Parts[i] & ~unsigned{!i})
1065 if (~(Parts[PartCount - 1] | HighBitFill | 0x1))
1074 const integerPart *Parts = significandParts();
1078 if (Parts[i])
1088 if (Parts[PartCount - 1] & HighBitMask)
1095 const integerPart *Parts = significandParts();
1099 if (Parts[i])
1105 return Parts[PartCount - 1] == integerPart(1)
1191 return significand.parts;
1213 integerPart *parts;
1215 parts = significandParts();
1220 return APInt::tcAdd(parts, rhs.significandParts(), 0, partCount());
1227 integerPart *parts;
1229 parts = significandParts();
1234 return APInt::tcSubtract(parts, rhs.significandParts(), borrow,
1312 significand.parts = fullSignificand;
1518 static void tcSetLeastSignificantBits(APInt::WordType *dst, unsigned parts,
1529 while (i < parts)
2534 significand.parts = newParts;
2609 destination parts are unspecified. If the rounded value is in
2617 MutableArrayRef<integerPart> parts, unsigned int width, bool isSigned,
2630 assert(dstPartsCount <= parts.size() && "Integer too big");
2633 APInt::tcSet(parts.data(), 0, dstPartsCount);
2645 APInt::tcSet(parts.data(), 0, dstPartsCount);
2661 APInt::tcExtract(parts.data(), dstPartsCount, src, bits, truncatedBits);
2664 APInt::tcExtract(parts.data(), dstPartsCount, src, semantics->precision,
2666 APInt::tcShiftLeft(parts.data(), dstPartsCount,
2679 if (APInt::tcIncrement(parts.data(), dstPartsCount))
2687 unsigned int omsb = APInt::tcMSB(parts.data(), dstPartsCount) + 1;
2699 APInt::tcLSB(parts.data(), dstPartsCount) + 1 != omsb)
2707 APInt::tcNegate (parts.data(), dstPartsCount);
2730 IEEEFloat::convertToInteger(MutableArrayRef<integerPart> parts,
2735 fs = convertToSignExtendedInteger(parts, width, isSigned, rounding_mode,
2742 assert(dstPartsCount <= parts.size() && "Integer too big");
2751 tcSetLeastSignificantBits(parts.data(), dstPartsCount, bits);
2753 APInt::tcShiftLeft(parts.data(), dstPartsCount, width - 1);
2834 IEEEFloat::convertFromZeroExtendedInteger(const integerPart *parts,
2838 APInt api = APInt(width, ArrayRef(parts, partCount));
2841 if (isSigned && APInt::tcExtractBit(parts, width - 1)) {
2947 unsigned int parts, pow5PartCount;
2955 parts = partCountForBits(semantics->precision + 11);
2960 for (;; parts *= 2) {
2964 calcSemantics.precision = parts * integerPartWidth - 1;
4412 const integerPart *Parts = significandParts();
4417 PopCount += llvm::popcount(Parts[i]);
4428 if (Parts[i] != 0) {
4430 llvm::countr_zero(Parts[i]) + 1;
4538 integerPart *Parts = significandParts();
4539 APInt::tcDecrement(Parts, partCount());
4545 APInt::tcSetBit(Parts, semantics->precision - 1);
4560 integerPart *Parts = significandParts();
4561 APInt::tcSet(Parts, 0, partCount());
4562 APInt::tcSetBit(Parts, semantics->precision - 1);
5368 SmallVector<uint64_t, 4> parts(result.getNumWords());
5369 opStatus status = convertToInteger(parts, bitWidth, result.isSigned(),
5372 result = APInt(bitWidth, parts);