libFLAC/lpc_intrin_sseN.c : Disambiguate macro names.

Previously, the files lpc_intrin_sse2.c and lpc_intrin_sse41.c both defined
macros RESIDUAL_RESULT and DATA_RESULT. This situation made it impossible
to merge these files which we may do at some stage.

Patch-from: lvqcl <lvqcl.mail@gmail.com>
This commit is contained in:
Erik de Castro Lopo
2014-06-28 21:55:25 +10:00
parent 2c15052550
commit 9aa1546436
2 changed files with 58 additions and 58 deletions

View File

@@ -48,8 +48,8 @@
#define RESIDUAL16_RESULT(xmmN) curr = *data++; *residual++ = curr - (_mm_cvtsi128_si32(xmmN) >> lp_quantization);
#define DATA16_RESULT(xmmN) curr = *residual++ + (_mm_cvtsi128_si32(xmmN) >> lp_quantization); *data++ = curr;
#define RESIDUAL_RESULT(xmmN) residual[i] = data[i] - (_mm_cvtsi128_si32(xmmN) >> lp_quantization);
#define DATA_RESULT(xmmN) data[i] = residual[i] + (_mm_cvtsi128_si32(xmmN) >> lp_quantization);
#define RESIDUAL32_RESULT(xmmN) residual[i] = data[i] - (_mm_cvtsi128_si32(xmmN) >> lp_quantization);
#define DATA32_RESULT(xmmN) data[i] = residual[i] + (_mm_cvtsi128_si32(xmmN) >> lp_quantization);
FLAC__SSE_TARGET("sse2")
void FLAC__lpc_compute_residual_from_qlp_coefficients_16_intrin_sse2(const FLAC__int32 *data, unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 residual[])
@@ -828,7 +828,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 11 */
@@ -888,7 +888,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
}
@@ -944,7 +944,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 9 */
@@ -995,7 +995,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
}
@@ -1044,7 +1044,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 7 */
@@ -1086,7 +1086,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
}
@@ -1124,7 +1124,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 5 */
@@ -1157,7 +1157,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
}
@@ -1188,7 +1188,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 3 */
@@ -1212,7 +1212,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
}
@@ -1231,7 +1231,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_sse2(const FLAC__in
xmm7 = _mm_mul_epu32(xmm7, xmm0);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL32_RESULT(xmm7);
}
}
else { /* order == 1 */
@@ -2065,7 +2065,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 11 */
@@ -2125,7 +2125,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
}
@@ -2181,7 +2181,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 9 */
@@ -2232,7 +2232,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
}
@@ -2281,7 +2281,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 7 */
@@ -2323,7 +2323,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
}
@@ -2361,7 +2361,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 5 */
@@ -2394,7 +2394,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
}
@@ -2425,7 +2425,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 3 */
@@ -2449,7 +2449,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_add_epi32(xmm7, xmm6);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
}
@@ -2468,7 +2468,7 @@ void FLAC__lpc_restore_signal_intrin_sse2(const FLAC__int32 residual[], unsigned
xmm7 = _mm_mul_epu32(xmm7, xmm0);
xmm7 = _mm_add_epi32(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA32_RESULT(xmm7);
}
}
else { /* order == 1 */

View File

@@ -46,15 +46,15 @@
#include <smmintrin.h> /* SSE4.1 */
#ifdef FLAC__CPU_IA32
#define RESIDUAL_RESULT(xmmN) residual[i] = data[i] - _mm_cvtsi128_si32(_mm_srl_epi64(xmmN, cnt));
#define DATA_RESULT(xmmN) data[i] = residual[i] + _mm_cvtsi128_si32(_mm_srl_epi64(xmmN, cnt));
#define RESIDUAL_RESULT1(xmmN) residual[i] = data[i] - _mm_cvtsi128_si32(_mm_srli_epi64(xmmN, lp_quantization));
#define DATA_RESULT1(xmmN) data[i] = residual[i] + _mm_cvtsi128_si32(_mm_srli_epi64(xmmN, lp_quantization));
#define RESIDUAL64_RESULT(xmmN) residual[i] = data[i] - _mm_cvtsi128_si32(_mm_srl_epi64(xmmN, cnt));
#define DATA64_RESULT(xmmN) data[i] = residual[i] + _mm_cvtsi128_si32(_mm_srl_epi64(xmmN, cnt));
#define RESIDUAL64_RESULT1(xmmN) residual[i] = data[i] - _mm_cvtsi128_si32(_mm_srli_epi64(xmmN, lp_quantization));
#define DATA64_RESULT1(xmmN) data[i] = residual[i] + _mm_cvtsi128_si32(_mm_srli_epi64(xmmN, lp_quantization));
#else
#define RESIDUAL_RESULT(xmmN) residual[i] = data[i] - (FLAC__int32)(_mm_cvtsi128_si64(xmmN) >> lp_quantization);
#define DATA_RESULT(xmmN) data[i] = residual[i] + (FLAC__int32)(_mm_cvtsi128_si64(xmmN) >> lp_quantization);
#define RESIDUAL_RESULT1(xmmN) RESIDUAL_RESULT(xmmN)
#define DATA_RESULT1(xmmN) DATA_RESULT(xmmN)
#define RESIDUAL64_RESULT(xmmN) residual[i] = data[i] - (FLAC__int32)(_mm_cvtsi128_si64(xmmN) >> lp_quantization);
#define DATA64_RESULT(xmmN) data[i] = residual[i] + (FLAC__int32)(_mm_cvtsi128_si64(xmmN) >> lp_quantization);
#define RESIDUAL64_RESULT1(xmmN) RESIDUAL64_RESULT(xmmN)
#define DATA64_RESULT1(xmmN) DATA64_RESULT(xmmN)
#endif
FLAC__SSE_TARGET("sse4.1")
@@ -67,7 +67,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
FLAC__ASSERT(order > 0);
FLAC__ASSERT(order <= 32);
FLAC__ASSERT(lp_quantization <= 32); /* there's no _mm_srai_epi64() so we have to use _mm_srli_epi64() */
FLAC__ASSERT(lp_quantization <= 32); /* there's no _mm_sra_epi64() so we have to use _mm_srl_epi64() */
if(order <= 12) {
if(order > 8) { /* order == 9, 10, 11, 12 */
@@ -132,7 +132,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT1(xmm7);
RESIDUAL64_RESULT1(xmm7);
}
}
else { /* order == 11 */
@@ -192,7 +192,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT1(xmm7);
RESIDUAL64_RESULT1(xmm7);
}
}
}
@@ -248,7 +248,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
else { /* order == 9 */
@@ -299,7 +299,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
}
@@ -348,7 +348,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
else { /* order == 7 */
@@ -390,7 +390,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
}
@@ -428,7 +428,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
else { /* order == 5 */
@@ -461,7 +461,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
}
@@ -492,7 +492,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
else { /* order == 3 */
@@ -516,7 +516,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
}
@@ -535,7 +535,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
xmm7 = _mm_mul_epi32(xmm7, xmm0);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
else { /* order == 1 */
@@ -546,7 +546,7 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_wide_intrin_sse41(const FL
//sum = qlp_coeff[0] * (FLAC__int64)data[i-1];
xmm7 = _mm_cvtsi32_si128(data[i-1]);
xmm7 = _mm_mul_epi32(xmm7, xmm0);
RESIDUAL_RESULT(xmm7);
RESIDUAL64_RESULT(xmm7);
}
}
}
@@ -605,7 +605,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
FLAC__ASSERT(order > 0);
FLAC__ASSERT(order <= 32);
FLAC__ASSERT(lp_quantization <= 32); /* there's no _mm_srai_epi64() so we have to use _mm_srli_epi64() */
FLAC__ASSERT(lp_quantization <= 32); /* there's no _mm_sra_epi64() so we have to use _mm_srl_epi64() */
if(order <= 12) {
if(order > 8) { /* order == 9, 10, 11, 12 */
@@ -670,7 +670,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT1(xmm7);
DATA64_RESULT1(xmm7);
}
}
else { /* order == 11 */
@@ -730,7 +730,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT1(xmm7);
DATA64_RESULT1(xmm7);
}
}
}
@@ -786,7 +786,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
else { /* order == 9 */
@@ -837,7 +837,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
}
@@ -886,7 +886,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
else { /* order == 7 */
@@ -928,7 +928,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
}
@@ -966,7 +966,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
else { /* order == 5 */
@@ -999,7 +999,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
}
@@ -1030,7 +1030,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
else { /* order == 3 */
@@ -1054,7 +1054,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_add_epi64(xmm7, xmm6);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
}
@@ -1073,7 +1073,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
xmm7 = _mm_mul_epi32(xmm7, xmm0);
xmm7 = _mm_add_epi64(xmm7, _mm_srli_si128(xmm7, 8));
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
else { /* order == 1 */
@@ -1084,7 +1084,7 @@ void FLAC__lpc_restore_signal_wide_intrin_sse41(const FLAC__int32 residual[], un
//sum = qlp_coeff[0] * (FLAC__int64)data[i-1];
xmm7 = _mm_cvtsi32_si128(data[i-1]);
xmm7 = _mm_mul_epi32(xmm7, xmm0);
DATA_RESULT(xmm7);
DATA64_RESULT(xmm7);
}
}
}