Commit 9ca16bdd authored by Christophe Gisquet's avatar Christophe Gisquet Committed by Michael Niedermayer

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: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent bf297940
...@@ -29,10 +29,12 @@ static int32_t scalarproduct_and_madd_int16_c(int16_t *v1, const int16_t *v2, ...@@ -29,10 +29,12 @@ static int32_t scalarproduct_and_madd_int16_c(int16_t *v1, const int16_t *v2,
{ {
int res = 0; int res = 0;
while (order--) { do {
res += *v1 * *v2++; res += *v1 * *v2++;
*v1++ += mul * *v3++; *v1++ += mul * *v3++;
} res += *v1 * *v2++;
*v1++ += mul * *v3++;
} while (order-=2);
return res; return res;
} }
...@@ -42,10 +44,12 @@ static int32_t scalarproduct_and_madd_int32_c(int16_t *v1, const int32_t *v2, ...@@ -42,10 +44,12 @@ static int32_t scalarproduct_and_madd_int32_c(int16_t *v1, const int32_t *v2,
{ {
int res = 0; int res = 0;
while (order--) { do {
res += *v1 * *v2++;
*v1++ += mul * *v3++;
res += *v1 * *v2++; res += *v1 * *v2++;
*v1++ += mul * *v3++; *v1++ += mul * *v3++;
} } while (order-=2);
return res; return res;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment