OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #include <arm_neon.h> | 11 #include <arm_neon.h> |
| 12 #include "vpx_ports/arm.h" |
12 | 13 |
13 #if (__GNUC__ == 4 && (__GNUC_MINOR__ == 6)) | 14 #ifdef VPX_INCOMPATIBLE_GCC |
14 #warning Using GCC 4.6 is not recommended | |
15 // Some versions of gcc4.6 do not correctly process this function. When built | |
16 // with any gcc4.6, use the C code. | |
17 #include "./vp8_rtcd.h" | 15 #include "./vp8_rtcd.h" |
18 void vp8_short_walsh4x4_neon( | 16 void vp8_short_walsh4x4_neon( |
19 int16_t *input, | 17 int16_t *input, |
20 int16_t *output, | 18 int16_t *output, |
21 int pitch) { | 19 int pitch) { |
22 vp8_short_walsh4x4_c(input, output, pitch); | 20 vp8_short_walsh4x4_c(input, output, pitch); |
23 } | 21 } |
24 #else | 22 #else |
25 void vp8_short_walsh4x4_neon( | 23 void vp8_short_walsh4x4_neon( |
26 int16_t *input, | 24 int16_t *input, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 d2s16 = vshrn_n_s32(q10s32, 3); | 119 d2s16 = vshrn_n_s32(q10s32, 3); |
122 d3s16 = vshrn_n_s32(q11s32, 3); | 120 d3s16 = vshrn_n_s32(q11s32, 3); |
123 | 121 |
124 q0s16 = vcombine_s16(d0s16, d1s16); | 122 q0s16 = vcombine_s16(d0s16, d1s16); |
125 q1s16 = vcombine_s16(d2s16, d3s16); | 123 q1s16 = vcombine_s16(d2s16, d3s16); |
126 | 124 |
127 vst1q_s16(output, q0s16); | 125 vst1q_s16(output, q0s16); |
128 vst1q_s16(output + 8, q1s16); | 126 vst1q_s16(output + 8, q1s16); |
129 return; | 127 return; |
130 } | 128 } |
131 #endif // (__GNUC__ == 4 && (__GNUC_MINOR__ == 6)) | 129 #endif // VPX_INCOMPATIBLE_GCC |
OLD | NEW |