Browse Source

lossless audio dsp: unroll

The loops are guaranteed to be at least multiples of 8, so this
unrolling is safe but allows exploiting execution ports.

For int32 version: 68 -> 58c.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tags/n3.1
Christophe Gisquet Michael Niedermayer 9 years ago
parent
commit
9ca16bdd3f
1 changed files with 8 additions and 4 deletions
  1. +8
    -4
      libavcodec/lossless_audiodsp.c

+ 8
- 4
libavcodec/lossless_audiodsp.c View File

@@ -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;
}



Loading…
Cancel
Save