1/* 2 * Copyright (c) 2014 The WebM project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11#include <arm_neon.h> 12 13void vp8_copy_mem8x4_neon( 14 unsigned char *src, 15 int src_stride, 16 unsigned char *dst, 17 int dst_stride) { 18 uint8x8_t vtmp; 19 int r; 20 21 for (r = 0; r < 4; r++) { 22 vtmp = vld1_u8(src); 23 vst1_u8(dst, vtmp); 24 src += src_stride; 25 dst += dst_stride; 26 } 27} 28 29void vp8_copy_mem8x8_neon( 30 unsigned char *src, 31 int src_stride, 32 unsigned char *dst, 33 int dst_stride) { 34 uint8x8_t vtmp; 35 int r; 36 37 for (r = 0; r < 8; r++) { 38 vtmp = vld1_u8(src); 39 vst1_u8(dst, vtmp); 40 src += src_stride; 41 dst += dst_stride; 42 } 43} 44 45void vp8_copy_mem16x16_neon( 46 unsigned char *src, 47 int src_stride, 48 unsigned char *dst, 49 int dst_stride) { 50 int r; 51 uint8x16_t qtmp; 52 53 for (r = 0; r < 16; r++) { 54 qtmp = vld1q_u8(src); 55 vst1q_u8(dst, qtmp); 56 src += src_stride; 57 dst += dst_stride; 58 } 59} 60