armVCM4P10_DeblockingLuma_unsafe_s.S revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
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
29    .func   armVCM4P10_DeblockingLumabSLT4_unsafe
30armVCM4P10_DeblockingLumabSLT4_unsafe:
31    VSUBL.U8 q11,d5,d9
32    VLD1.8   {d18[]},[r5]!
33    VSUBL.U8 q10,d8,d4
34    VLD1.8   {d19[]},[r5]!
35    VSHR.S16 q11,q11,#2
36    VEXT.8   d18,d18,d19,#4
37    VAND     d19,d17,d15
38    VBIF     d18,d14,d16
39    VRHADD.S16 q10,q11,q10
40    VRHADD.U8 d24,d4,d8
41    VADD.I8  d31,d18,d19
42    VAND     d19,d12,d15
43    VQADD.U8 d23,d5,d18
44    VQMOVN.S16 d20,q10
45    VADD.I8  d31,d31,d19
46    VQSUB.U8 d22,d5,d18
47    VQADD.U8 d19,d9,d18
48    VHADD.U8 d26,d24,d6
49    VMIN.S8  d20,d20,d31
50    VNEG.S8  d31,d31
51    VQSUB.U8 d21,d9,d18
52    VHADD.U8 d27,d24,d10
53    VMAX.U8  d30,d26,d22
54    VMAX.S8  d20,d20,d31
55    VMOVL.U8 q14,d4
56    VMOVL.U8 q12,d8
57    VADDW.S8 q14,q14,d20
58    VSUBW.S8 q12,q12,d20
59    VQMOVUN.S16 d29,q14
60    VQMOVUN.S16 d24,q12
61    VMAX.U8  d25,d27,d21
62    VMIN.U8  d30,d30,d23
63    VMIN.U8  d25,d25,d19
64    VBIF     d29,d4,d16
65    VBIF     d30,d5,d17
66    VBIF     d24,d8,d16
67    VBIF     d25,d9,d12
68    BX       lr
69    .endfunc
70
71    .global armVCM4P10_DeblockingLumabSGE4_unsafe
72    .func   armVCM4P10_DeblockingLumabSGE4_unsafe
73armVCM4P10_DeblockingLumabSGE4_unsafe:
74    VSHR.U8  d19,d0,#2
75    VADD.I8  d19,d19,d15
76    VADDL.U8 q10,d8,d4
77    VADD.I8  d19,d19,d15
78    VADDL.U8 q11,d6,d9
79    VADDW.U8 q12,q10,d5
80    VCGT.U8  d19,d19,d13
81    VSHR.U16 q11,q11,#1
82    VHADD.U16 q11,q12,q11
83    VADDW.U8 q12,q12,d6
84    VADDL.U8 q13,d7,d6
85    VAND     d17,d17,d19
86    VHADD.U8 d28,d4,d9
87    VSRA.U16 q13,q12,#1
88    VAND     d12,d12,d19
89    VQRSHRN.U16 d29,q11,#1
90    VRHADD.U8 d28,d28,d5
91    VQRSHRN.U16 d30,q12,#2
92    VADDL.U8 q11,d10,d5
93    VADDW.U8 q12,q10,d9
94    VBIF     d29,d28,d17
95    VQRSHRN.U16 d31,q13,#2
96    VADDL.U8 q13,d11,d10
97    VSHR.U16 q11,q11,#1
98    VHADD.U16 q11,q12,q11
99    VADDW.U8 q12,q12,d10
100    VHADD.U8 d28,d8,d5
101    VBIF     d29,d4,d16
102    VBIF     d30,d5,d17
103    VSRA.U16 q13,q12,#1
104    VQRSHRN.U16 d25,q12,#2
105    VQRSHRN.U16 d24,q11,#1
106    VRHADD.U8 d22,d28,d9
107    VBIF     d25,d9,d12
108    VBIF     d31,d6,d17
109    VBIF     d24,d22,d12
110    VQRSHRN.U16 d28,q13,#2
111    VBIF     d24,d8,d16
112    VBIF     d28,d10,d12
113    BX       lr
114    .endfunc
115
116    .end
117
118