2 * Copyright (c) 2011 Janne Grunau <janne-libav@jannau.net>
4 * This file is part of Libav.
6 * Libav is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * Libav is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with Libav; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
28 vmull.u16 q2, d16, d0[2]
29 vmull.u16 q3, d17, d0[2]
30 vmull.u16 q8, d18, d0[2]
31 vmull.u16 q9, d19, d0[2]
32 vmull.u16 q12, d20, d0[0]
33 vmull.u16 q13, d21, d0[0]
34 vmull.u16 q14, d22, d0[0]
35 vmull.u16 q15, d23, d0[0]
40 vshrn.i32 d16, q12, #9
41 vshrn.i32 d17, q13, #9
42 vshrn.i32 d18, q14, #9
43 vshrn.i32 d19, q15, #9
50 /* void ff_rv40_weight_func_16_neon(uint8_t *dst, uint8_t *src1, uint8_t *src2,
51 int w1, int w2, int stride) */
52 function ff_rv40_weight_func_16_neon, export=1
58 vld1.8 {q1}, [r1,:128], r12
59 vld1.8 {q2}, [r2,:128], r12
61 vst1.8 {q1}, [r0,:128], r12
67 /* void ff_rv40_weight_func_8_neon(uint8_t *dst, uint8_t *src1, uint8_t *src2,
68 int w1, int w2, int stride) */
69 function ff_rv40_weight_func_8_neon, export=1
75 vld1.8 {d2}, [r1,:64], r12
76 vld1.8 {d3}, [r1,:64], r12
77 vld1.8 {d4}, [r2,:64], r12
78 vld1.8 {d5}, [r2,:64], r12
80 vst1.8 {d2}, [r0,:64], r12
81 vst1.8 {d3}, [r0,:64], r12