summaryrefslogtreecommitdiff
path: root/src/libFLAC/lpc_intrin_neon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libFLAC/lpc_intrin_neon.c')
-rw-r--r--src/libFLAC/lpc_intrin_neon.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/libFLAC/lpc_intrin_neon.c b/src/libFLAC/lpc_intrin_neon.c
index ab8f71ea..eedc2f69 100644
--- a/src/libFLAC/lpc_intrin_neon.c
+++ b/src/libFLAC/lpc_intrin_neon.c
@@ -41,6 +41,30 @@
#include "private/macros.h"
#include <arm_neon.h>
+#ifdef FLAC__HAS_A64NEONINTRIN
+void FLAC__lpc_compute_autocorrelation_intrin_neon_lag_14(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[])
+{
+#undef MAX_LAG
+#define MAX_LAG 14
+#include "deduplication/lpc_compute_autocorrelation_intrin_neon.c"
+}
+
+void FLAC__lpc_compute_autocorrelation_intrin_neon_lag_10(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[])
+{
+#undef MAX_LAG
+#define MAX_LAG 10
+#include "deduplication/lpc_compute_autocorrelation_intrin_neon.c"
+}
+
+void FLAC__lpc_compute_autocorrelation_intrin_neon_lag_8(const FLAC__real data[], uint32_t data_len, uint32_t lag, double autoc[])
+{
+#undef MAX_LAG
+#define MAX_LAG 8
+#include "deduplication/lpc_compute_autocorrelation_intrin_neon.c"
+}
+
+#endif /* ifdef FLAC__HAS_A64NEONINTRIN */
+
#define MUL_32_BIT_LOOP_UNROOL_3(qlp_coeff_vec, lane) \
summ_0 = vmulq_laneq_s32(tmp_vec[0], qlp_coeff_vec, lane); \
@@ -57,11 +81,11 @@ void FLAC__lpc_compute_residual_from_qlp_coefficients_intrin_neon(const FLAC__in
{
int i;
FLAC__int32 sum;
+ int32x4_t tmp_vec[20];
+
FLAC__ASSERT(order > 0);
FLAC__ASSERT(order <= 32);
- int32x4_t tmp_vec[20];
-
// Using prologue reads is valid as encoder->private_->local_lpc_compute_residual_from_qlp_coefficients(signal+order,....)
if(order <= 12) {
if(order > 8) {