1/*
2 * Copyright (C) 2007-2008 ARM Limited
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17/*
18 *
19 */
20
21    .eabi_attribute 24, 1
22    .eabi_attribute 25, 1
23
24    .arm
25    .fpu neon
26    .text
27
28    .global armVCM4P10_DeblockingLumabSLT4_unsafe
29armVCM4P10_DeblockingLumabSLT4_unsafe:
30    VSUBL.U8 q11,d5,d9
31    VLD1.8   {d18[]},[r5]!
32    VSUBL.U8 q10,d8,d4
33    VLD1.8   {d19[]},[r5]!
34    VSHR.S16 q11,q11,#2
35    VEXT.8   d18,d18,d19,#4
36    VAND     d19,d17,d15
37    VBIF     d18,d14,d16
38    VRHADD.S16 q10,q11,q10
39    VRHADD.U8 d24,d4,d8
40    VADD.I8  d31,d18,d19
41    VAND     d19,d12,d15
42    VQADD.U8 d23,d5,d18
43    VQMOVN.S16 d20,q10
44    VADD.I8  d31,d31,d19
45    VQSUB.U8 d22,d5,d18
46    VQADD.U8 d19,d9,d18
47    VHADD.U8 d26,d24,d6
48    VMIN.S8  d20,d20,d31
49    VNEG.S8  d31,d31
50    VQSUB.U8 d21,d9,d18
51    VHADD.U8 d27,d24,d10
52    VMAX.U8  d30,d26,d22
53    VMAX.S8  d20,d20,d31
54    VMOVL.U8 q14,d4
55    VMOVL.U8 q12,d8
56    VADDW.S8 q14,q14,d20
57    VSUBW.S8 q12,q12,d20
58    VQMOVUN.S16 d29,q14
59    VQMOVUN.S16 d24,q12
60    VMAX.U8  d25,d27,d21
61    VMIN.U8  d30,d30,d23
62    VMIN.U8  d25,d25,d19
63    VBIF     d29,d4,d16
64    VBIF     d30,d5,d17
65    VBIF     d24,d8,d16
66    VBIF     d25,d9,d12
67    BX       lr
68
69    .global armVCM4P10_DeblockingLumabSGE4_unsafe
70armVCM4P10_DeblockingLumabSGE4_unsafe:
71    VSHR.U8  d19,d0,#2
72    VADD.I8  d19,d19,d15
73    VADDL.U8 q10,d8,d4
74    VADD.I8  d19,d19,d15
75    VADDL.U8 q11,d6,d9
76    VADDW.U8 q12,q10,d5
77    VCGT.U8  d19,d19,d13
78    VSHR.U16 q11,q11,#1
79    VHADD.U16 q11,q12,q11
80    VADDW.U8 q12,q12,d6
81    VADDL.U8 q13,d7,d6
82    VAND     d17,d17,d19
83    VHADD.U8 d28,d4,d9
84    VSRA.U16 q13,q12,#1
85    VAND     d12,d12,d19
86    VQRSHRN.U16 d29,q11,#1
87    VRHADD.U8 d28,d28,d5
88    VQRSHRN.U16 d30,q12,#2
89    VADDL.U8 q11,d10,d5
90    VADDW.U8 q12,q10,d9
91    VBIF     d29,d28,d17
92    VQRSHRN.U16 d31,q13,#2
93    VADDL.U8 q13,d11,d10
94    VSHR.U16 q11,q11,#1
95    VHADD.U16 q11,q12,q11
96    VADDW.U8 q12,q12,d10
97    VHADD.U8 d28,d8,d5
98    VBIF     d29,d4,d16
99    VBIF     d30,d5,d17
100    VSRA.U16 q13,q12,#1
101    VQRSHRN.U16 d25,q12,#2
102    VQRSHRN.U16 d24,q11,#1
103    VRHADD.U8 d22,d28,d9
104    VBIF     d25,d9,d12
105    VBIF     d31,d6,d17
106    VBIF     d24,d22,d12
107    VQRSHRN.U16 d28,q13,#2
108    VBIF     d24,d8,d16
109    VBIF     d28,d10,d12
110    BX       lr
111
112    .end
113
114