1
0
mirror of https://github.com/postgres/postgres.git synced 2026-10-23 13:29:09 +03:00

Apply auto-vectorization to the loop in accum_sum_add()

Rewrite the loop to a form that compilers are more likely to
auto-vectorize, similar to commits 8870917623 and e3d41d08a1.

Author: Xiangxin Zeng <xiangxin_zeng@qq.com>
Reviewed-by: Quan Zongliang <quanzongliang@yeah.net>
Reviewed-by: Junwang Zhao <zhjwpku@gmail.com>
Discussion: https://www.postgresql.org/message-id/tencent_9DA409B9B2CAA6FFF985C638A28D35C73705@qq.com
This commit is contained in:
Heikki Linnakangas
2026-10-13 14:31:45 +03:00
parent 6296e78c3d
commit 158b6d5109

View File

@@ -11909,8 +11909,6 @@ static void
accum_sum_add(NumericSumAccum *accum, const NumericVar *val)
{
int32 *accum_digits;
int i,
val_i;
int val_ndigits;
NumericDigit *val_digits;
@@ -11940,12 +11938,9 @@ accum_sum_add(NumericSumAccum *accum, const NumericVar *val)
val_ndigits = val->ndigits;
val_digits = val->digits;
i = accum->weight - val->weight;
for (val_i = 0; val_i < val_ndigits; val_i++)
{
accum_digits[i] += (int32) val_digits[val_i];
i++;
}
accum_digits += accum->weight - val->weight;
for (int i = 0; i < val_ndigits; i++)
accum_digits[i] += (int32) val_digits[i];
accum->num_uncarried++;
}