@@ -479,15 +479,16 @@ template <int NB, typename T> struct MultiplicationResult {
479479};
480480
481481template <int NB, typename T>
482- constexpr auto
483- doublingMultiplication (SWAR<NB, T> multiplicand, SWAR<NB, T> multiplier) {
484- using S = SWAR<NB, T>; using D = SWAR<NB * 2 , T>;
485- auto [l_even, l_odd] = doublePrecision (multiplicand);
486- auto [r_even, r_odd] = doublePrecision (multiplier);
482+ constexpr
483+ auto
484+ doublePrecisionMultiplication (SWAR<NB, T> multiplicand, SWAR<NB, T> multiplier) {
485+ auto
486+ icand = doublePrecision (multiplicand),
487+ plier = doublePrecision (multiplier);
487488 auto
488- res_even = multiplication_OverflowUnsafe (l_even, r_even ),
489- res_odd = multiplication_OverflowUnsafe (l_odd, r_odd );
490- return SWAR_Pair<NB * 2 , T>{res_even, res_odd };
489+ lower = multiplication_OverflowUnsafe (icand. even , plier. even ),
490+ upper = multiplication_OverflowUnsafe (icand. odd , plier. odd );
491+ return SWAR_Pair<NB * 2 , T>{lower, upper };
491492}
492493
493494template <int NB, typename T>
@@ -497,7 +498,7 @@ wideningMultiplication(SWAR<NB, T> multiplicand, SWAR<NB, T> multiplier) {
497498 constexpr auto
498499 HalfLane = S::NBits,
499500 UpperHalfOfLanes = SWAR<S::NBits, T>::oddLaneMask ().value ();
500- auto [lower, upper] = doublingMultiplication (multiplicand, multiplier);
501+ auto [lower, upper] = doublePrecisionMultiplication (multiplicand, multiplier);
501502 auto result = halvePrecision (lower, upper);
502503 auto
503504 over_even = D{(lower.value () & UpperHalfOfLanes) >> HalfLane},
0 commit comments