Index: third_party/opus/src/silk/arm/NSQ_neon.h |
diff --git a/third_party/opus/src/silk/arm/NSQ_neon.h b/third_party/opus/src/silk/arm/NSQ_neon.h |
index 77c946af8544786e31134571a8e5574f9e098c8c..b31d9442d6991c49ad5202f29d9d02b8d1139506 100644 |
--- a/third_party/opus/src/silk/arm/NSQ_neon.h |
+++ b/third_party/opus/src/silk/arm/NSQ_neon.h |
@@ -28,30 +28,31 @@ POSSIBILITY OF SUCH DAMAGE. |
#define SILK_NSQ_NEON_H |
#include "cpu_support.h" |
+#include "SigProc_FIX.h" |
#undef silk_short_prediction_create_arch_coef |
/* For vectorized calc, reverse a_Q12 coefs, convert to 32-bit, and shift for vqdmulhq_s32. */ |
static OPUS_INLINE void silk_short_prediction_create_arch_coef_neon(opus_int32 *out, const opus_int16 *in, opus_int order) |
{ |
- out[15] = in[0] << 15; |
- out[14] = in[1] << 15; |
- out[13] = in[2] << 15; |
- out[12] = in[3] << 15; |
- out[11] = in[4] << 15; |
- out[10] = in[5] << 15; |
- out[9] = in[6] << 15; |
- out[8] = in[7] << 15; |
- out[7] = in[8] << 15; |
- out[6] = in[9] << 15; |
+ out[15] = silk_LSHIFT32(in[0], 15); |
+ out[14] = silk_LSHIFT32(in[1], 15); |
+ out[13] = silk_LSHIFT32(in[2], 15); |
+ out[12] = silk_LSHIFT32(in[3], 15); |
+ out[11] = silk_LSHIFT32(in[4], 15); |
+ out[10] = silk_LSHIFT32(in[5], 15); |
+ out[9] = silk_LSHIFT32(in[6], 15); |
+ out[8] = silk_LSHIFT32(in[7], 15); |
+ out[7] = silk_LSHIFT32(in[8], 15); |
+ out[6] = silk_LSHIFT32(in[9], 15); |
if (order == 16) |
{ |
- out[5] = in[10] << 15; |
- out[4] = in[11] << 15; |
- out[3] = in[12] << 15; |
- out[2] = in[13] << 15; |
- out[1] = in[14] << 15; |
- out[0] = in[15] << 15; |
+ out[5] = silk_LSHIFT32(in[10], 15); |
+ out[4] = silk_LSHIFT32(in[11], 15); |
+ out[3] = silk_LSHIFT32(in[12], 15); |
+ out[2] = silk_LSHIFT32(in[13], 15); |
+ out[1] = silk_LSHIFT32(in[14], 15); |
+ out[0] = silk_LSHIFT32(in[15], 15); |
} |
else |
{ |