armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe_s.S revision 0c1bc742181ded4930842b46e9507372f0b1b963
1/*
2 * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
3 *
4 */
5
6    .eabi_attribute 24, 1
7    .eabi_attribute 25, 1
8
9    .arm
10    .fpu neon
11    .text
12
13    .global armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
14    .func   armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe
15armVCM4P10_InterpolateLuma_HalfHor4x4_unsafe:
16    PUSH     {r4-r12,lr}
17    VLD1.8   {d22,d23},[r0],r1
18    VEXT.8   d10,d22,d23,#5
19    VEXT.8   d12,d22,d23,#1
20    VEXT.8   d14,d22,d23,#2
21    VEXT.8   d15,d22,d23,#3
22    VEXT.8   d13,d22,d23,#4
23    VADDL.U8 q11,d22,d10
24    VADDL.U8 q4,d14,d15
25    VADDL.U8 q6,d12,d13
26    VLD1.8   {d24,d25},[r0],r1
27    VMLA.I16 d22,d8,d31
28    VMUL.I16 d8,d12,d30
29    VEXT.8   d10,d24,d25,#5
30    VEXT.8   d12,d24,d25,#1
31    VEXT.8   d16,d24,d25,#2
32    VEXT.8   d17,d24,d25,#3
33    VEXT.8   d13,d24,d25,#4
34    VADDL.U8 q12,d24,d10
35    VSUB.I16 d22,d22,d8
36    VADDL.U8 q4,d16,d17
37    VADDL.U8 q6,d12,d13
38    VLD1.8   {d26,d27},[r0],r1
39    VMLA.I16 d24,d8,d31
40    VMUL.I16 d8,d12,d30
41    VEXT.8   d10,d26,d27,#5
42    VEXT.8   d12,d26,d27,#1
43    VEXT.8   d18,d26,d27,#2
44    VEXT.8   d19,d26,d27,#3
45    VEXT.8   d13,d26,d27,#4
46    VADDL.U8 q13,d26,d10
47    VSUB.I16 d24,d24,d8
48    VADDL.U8 q4,d18,d19
49    VADDL.U8 q6,d12,d13
50    VLD1.8   {d28,d29},[r0],r1
51    VMLA.I16 d26,d8,d31
52    VMUL.I16 d8,d12,d30
53    VEXT.8   d10,d28,d29,#5
54    VEXT.8   d12,d28,d29,#1
55    VEXT.8   d20,d28,d29,#2
56    VEXT.8   d21,d28,d29,#3
57    VEXT.8   d13,d28,d29,#4
58    VADDL.U8 q14,d28,d10
59    VSUB.I16 d26,d26,d8
60    VADDL.U8 q4,d20,d21
61    VADDL.U8 q6,d12,d13
62    VMLA.I16 d28,d8,d31
63    VMLS.I16 d28,d12,d30
64    VQRSHRUN.S16 d22,q11,#5
65    VQRSHRUN.S16 d24,q12,#5
66    VQRSHRUN.S16 d26,q13,#5
67    VQRSHRUN.S16 d28,q14,#5
68    POP      {r4-r12,pc}
69    .endfunc
70
71    .end
72
73