summaryrefslogtreecommitdiff
path: root/libavcodec/lossless_audiodsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/lossless_audiodsp.c')
-rw-r--r--libavcodec/lossless_audiodsp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libavcodec/lossless_audiodsp.c b/libavcodec/lossless_audiodsp.c
index ea0568e64f..e3ea8e188c 100644
--- a/libavcodec/lossless_audiodsp.c
+++ b/libavcodec/lossless_audiodsp.c
@@ -29,10 +29,12 @@ static int32_t scalarproduct_and_madd_int16_c(int16_t *v1, const int16_t *v2,
{
int res = 0;
- while (order--) {
+ do {
res += *v1 * *v2++;
*v1++ += mul * *v3++;
- }
+ res += *v1 * *v2++;
+ *v1++ += mul * *v3++;
+ } while (order-=2);
return res;
}
@@ -42,10 +44,12 @@ static int32_t scalarproduct_and_madd_int32_c(int16_t *v1, const int32_t *v2,
{
int res = 0;
- while (order--) {
+ do {
+ res += *v1 * *v2++;
+ *v1++ += mul * *v3++;
res += *v1 * *v2++;
*v1++ += mul * *v3++;
- }
+ } while (order-=2);
return res;
}