Home | History | Annotate | Download | only in neon
      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 
     13 void 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 
     29 void 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 
     45 void 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