Lines Matching refs:parts

338 static void tcComplement(APInt::WordType *dst, unsigned parts) {  in tcComplement()  argument
339 for (unsigned i = 0; i < parts; i++) in tcComplement()
2321 void APInt::tcSet(WordType *dst, WordType part, unsigned parts) { in tcSet() argument
2322 assert(parts > 0); in tcSet()
2324 for (unsigned i = 1; i < parts; i++) in tcSet()
2329 void APInt::tcAssign(WordType *dst, const WordType *src, unsigned parts) { in tcAssign() argument
2330 for (unsigned i = 0; i < parts; i++) in tcAssign()
2335 bool APInt::tcIsZero(const WordType *src, unsigned parts) { in tcIsZero() argument
2336 for (unsigned i = 0; i < parts; i++) in tcIsZero()
2344 int APInt::tcExtractBit(const WordType *parts, unsigned bit) { in tcExtractBit() argument
2345 return (parts[whichWord(bit)] & maskBit(bit)) != 0; in tcExtractBit()
2349 void APInt::tcSetBit(WordType *parts, unsigned bit) { in tcSetBit() argument
2350 parts[whichWord(bit)] |= maskBit(bit); in tcSetBit()
2354 void APInt::tcClearBit(WordType *parts, unsigned bit) { in tcClearBit() argument
2355 parts[whichWord(bit)] &= ~maskBit(bit); in tcClearBit()
2360 unsigned APInt::tcLSB(const WordType *parts, unsigned n) { in tcLSB() argument
2362 if (parts[i] != 0) { in tcLSB()
2363 unsigned lsb = llvm::countr_zero(parts[i]); in tcLSB()
2373 unsigned APInt::tcMSB(const WordType *parts, unsigned n) { in tcMSB() argument
2377 if (parts[n] != 0) { in tcMSB()
2378 static_assert(sizeof(parts[n]) <= sizeof(uint64_t)); in tcMSB()
2379 unsigned msb = llvm::Log2_64(parts[n]); in tcMSB()
2424 WordType c, unsigned parts) { in tcAdd() argument
2427 for (unsigned i = 0; i < parts; i++) { in tcAdd()
2446 unsigned parts) { in tcAddPart() argument
2447 for (unsigned i = 0; i < parts; ++i) { in tcAddPart()
2459 WordType c, unsigned parts) { in tcSubtract() argument
2462 for (unsigned i = 0; i < parts; i++) { in tcSubtract()
2484 unsigned parts) { in tcSubtractPart() argument
2485 for (unsigned i = 0; i < parts; ++i) { in tcSubtractPart()
2497 void APInt::tcNegate(WordType *dst, unsigned parts) { in tcNegate() argument
2498 tcComplement(dst, parts); in tcNegate()
2499 tcIncrement(dst, parts); in tcNegate()
2595 const WordType *rhs, unsigned parts) { in tcMultiply() argument
2599 tcSet(dst, 0, parts); in tcMultiply()
2601 for (unsigned i = 0; i < parts; i++) in tcMultiply()
2602 overflow |= tcMultiplyPart(&dst[i], lhs, rhs[i], 0, parts, in tcMultiply()
2603 parts - i, true); in tcMultiply()
2636 unsigned parts) { in tcDivide() argument
2639 unsigned shiftCount = tcMSB(rhs, parts) + 1; in tcDivide()
2643 shiftCount = parts * APINT_BITS_PER_WORD - shiftCount; in tcDivide()
2647 tcAssign(srhs, rhs, parts); in tcDivide()
2648 tcShiftLeft(srhs, parts, shiftCount); in tcDivide()
2649 tcAssign(remainder, lhs, parts); in tcDivide()
2650 tcSet(lhs, 0, parts); in tcDivide()
2655 int compare = tcCompare(remainder, srhs, parts); in tcDivide()
2657 tcSubtract(remainder, srhs, 0, parts); in tcDivide()
2664 tcShiftRight(srhs, parts, 1); in tcDivide()
2730 unsigned parts) { in tcCompare() argument
2731 while (parts) { in tcCompare()
2732 parts--; in tcCompare()
2733 if (lhs[parts] != rhs[parts]) in tcCompare()
2734 return (lhs[parts] > rhs[parts]) ? 1 : -1; in tcCompare()