Lines Matching full:product
155 auto product{GetFraction().MultiplyUnsigned(y.GetFraction())};
161 if (rshift >= product.upper.bits + product.lower.bits) {
162 sticky = !product.lower.IsZero() || !product.upper.IsZero();
163 } else if (rshift >= product.lower.bits) {
164 sticky = !product.lower.IsZero() ||
165 !product.upper
166 .IAND(product.upper.MASKR(rshift - product.lower.bits))
169 sticky = !product.lower.IAND(product.lower.MASKR(rshift)).IsZero();
171 product.lower = product.lower.SHIFTRWithFill(product.upper, rshift);
172 product.upper = product.upper.SHIFTR(rshift);
174 product.lower = product.lower.IBSET(0);
177 int leadz{product.upper.LEADZ()};
178 if (leadz >= product.upper.bits) {
179 leadz += product.lower.LEADZ();
186 product.upper = product.upper.SHIFTLWithFill(product.lower, lshift);
187 product.lower = product.lower.SHIFTL(lshift);
188 RoundingBits roundingBits{product.lower, product.lower.bits};
189 NormalizeAndRound(result, isNegative, exponent, product.upper, rounding,
607 // inexact multiplication product rounds to a normal result when