From 42e6fc147b5a375fe811c64dc5f1cb66d5b0ac49 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 23 Jun 2014 02:04:44 +0200 Subject: avcodec/apedec: optimize sign combination 48078630 -> 32533850 dezi cycles Signed-off-by: Michael Niedermayer --- libavcodec/apedec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libavcodec/apedec.c') diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 126b6d7e57..4e25b44e9e 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -913,7 +913,7 @@ static void long_filter_high_3800(int32_t *buffer, int order, int shift, sign = APESIGN(buffer[i]); for (j = 0; j < order; j++) { dotprod += delay[j] * coeffs[j]; - coeffs[j] -= (((delay[j] >> 30) & 2) - 1) * sign; + coeffs[j] += ((delay[j] >> 31) | 1) * sign; } buffer[i] -= dotprod >> shift; for (j = 0; j < order - 1; j++) @@ -933,7 +933,7 @@ static void long_filter_ehigh_3830(int32_t *buffer, int length) sign = APESIGN(buffer[i]); for (j = 7; j >= 0; j--) { dotprod += delay[j] * coeffs[j]; - coeffs[j] -= (((delay[j] >> 30) & 2) - 1) * sign; + coeffs[j] += ((delay[j] >> 31) | 1) * sign; } for (j = 7; j > 0; j--) delay[j] = delay[j - 1]; -- cgit v1.2.3