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 |
(...skipping 12 matching lines...) Expand all Loading... |
23 | 23 |
24 void vp8_bilinear_predict4x4_neon( | 24 void vp8_bilinear_predict4x4_neon( |
25 unsigned char *src_ptr, | 25 unsigned char *src_ptr, |
26 int src_pixels_per_line, | 26 int src_pixels_per_line, |
27 int xoffset, | 27 int xoffset, |
28 int yoffset, | 28 int yoffset, |
29 unsigned char *dst_ptr, | 29 unsigned char *dst_ptr, |
30 int dst_pitch) { | 30 int dst_pitch) { |
31 uint8x8_t d0u8, d1u8, d2u8, d3u8, d4u8, d5u8, d6u8; | 31 uint8x8_t d0u8, d1u8, d2u8, d3u8, d4u8, d5u8, d6u8; |
32 uint8x8_t d26u8, d27u8, d28u8, d29u8, d30u8; | 32 uint8x8_t d26u8, d27u8, d28u8, d29u8, d30u8; |
33 uint32x2_t d28u32, d29u32, d30u32; | |
34 uint8x16_t q1u8, q2u8; | 33 uint8x16_t q1u8, q2u8; |
35 uint16x8_t q1u16, q2u16; | 34 uint16x8_t q1u16, q2u16; |
36 uint16x8_t q7u16, q8u16, q9u16; | 35 uint16x8_t q7u16, q8u16, q9u16; |
37 uint64x2_t q4u64, q5u64; | 36 uint64x2_t q4u64, q5u64; |
38 uint64x1_t d12u64; | 37 uint64x1_t d12u64; |
39 uint32x2x2_t d0u32x2, d1u32x2, d2u32x2, d3u32x2; | 38 uint32x2x2_t d0u32x2, d1u32x2, d2u32x2, d3u32x2; |
40 | 39 |
41 if (xoffset == 0) { // skip_1stpass_filter | 40 if (xoffset == 0) { // skip_1stpass_filter |
| 41 uint32x2_t d28u32 = vdup_n_u32(0); |
| 42 uint32x2_t d29u32 = vdup_n_u32(0); |
| 43 uint32x2_t d30u32 = vdup_n_u32(0); |
| 44 |
42 d28u32 = vld1_lane_u32((const uint32_t *)src_ptr, d28u32, 0); | 45 d28u32 = vld1_lane_u32((const uint32_t *)src_ptr, d28u32, 0); |
43 src_ptr += src_pixels_per_line; | 46 src_ptr += src_pixels_per_line; |
44 d28u32 = vld1_lane_u32((const uint32_t *)src_ptr, d28u32, 1); | 47 d28u32 = vld1_lane_u32((const uint32_t *)src_ptr, d28u32, 1); |
45 src_ptr += src_pixels_per_line; | 48 src_ptr += src_pixels_per_line; |
46 d29u32 = vld1_lane_u32((const uint32_t *)src_ptr, d29u32, 0); | 49 d29u32 = vld1_lane_u32((const uint32_t *)src_ptr, d29u32, 0); |
47 src_ptr += src_pixels_per_line; | 50 src_ptr += src_pixels_per_line; |
48 d29u32 = vld1_lane_u32((const uint32_t *)src_ptr, d29u32, 1); | 51 d29u32 = vld1_lane_u32((const uint32_t *)src_ptr, d29u32, 1); |
49 src_ptr += src_pixels_per_line; | 52 src_ptr += src_pixels_per_line; |
50 d30u32 = vld1_lane_u32((const uint32_t *)src_ptr, d30u32, 0); | 53 d30u32 = vld1_lane_u32((const uint32_t *)src_ptr, d30u32, 0); |
51 d28u8 = vreinterpret_u8_u32(d28u32); | 54 d28u8 = vreinterpret_u8_u32(d28u32); |
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 | 690 |
688 q11u8 = q15u8; | 691 q11u8 = q15u8; |
689 | 692 |
690 vst1q_u8((uint8_t *)dst_ptr, q1u8); dst_ptr += dst_pitch; | 693 vst1q_u8((uint8_t *)dst_ptr, q1u8); dst_ptr += dst_pitch; |
691 vst1q_u8((uint8_t *)dst_ptr, q2u8); dst_ptr += dst_pitch; | 694 vst1q_u8((uint8_t *)dst_ptr, q2u8); dst_ptr += dst_pitch; |
692 vst1q_u8((uint8_t *)dst_ptr, q3u8); dst_ptr += dst_pitch; | 695 vst1q_u8((uint8_t *)dst_ptr, q3u8); dst_ptr += dst_pitch; |
693 vst1q_u8((uint8_t *)dst_ptr, q4u8); dst_ptr += dst_pitch; | 696 vst1q_u8((uint8_t *)dst_ptr, q4u8); dst_ptr += dst_pitch; |
694 } | 697 } |
695 return; | 698 return; |
696 } | 699 } |
OLD | NEW |