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 commits8870917623ande3d41d08a1. 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:
@@ -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++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user