| 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 |