10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Copyright (C) 2007-2008 ARM Limited
378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Licensed under the Apache License, Version 2.0 (the "License");
578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * you may not use this file except in compliance with the License.
678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * You may obtain a copy of the License at
778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
878e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *      http://www.apache.org/licenses/LICENSE-2.0
978e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1078e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * Unless required by applicable law or agreed to in writing, software
1178e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * distributed under the License is distributed on an "AS IS" BASIS,
1278e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1378e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * See the License for the specific language governing permissions and
1478e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar * limitations under the License.
1578e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar *
1678e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar */
1778e52bfac041d71ce53b5b13c2abf78af742b09dLajos Molnar/*
180c1bc742181ded4930842b46e9507372f0b1b963James Dong *
190c1bc742181ded4930842b46e9507372f0b1b963James Dong */
200c1bc742181ded4930842b46e9507372f0b1b963James Dong
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 24, 1
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    .eabi_attribute 25, 1
230c1bc742181ded4930842b46e9507372f0b1b963James Dong
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    .arm
250c1bc742181ded4930842b46e9507372f0b1b963James Dong    .fpu neon
260c1bc742181ded4930842b46e9507372f0b1b963James Dong    .text
270c1bc742181ded4930842b46e9507372f0b1b963James Dong
280c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingLumabSLT4_unsafe
290c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingLumabSLT4_unsafe
300c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingLumabSLT4_unsafe:
310c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q11,d5,d9
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d18[]},[r5]!
330c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBL.U8 q10,d8,d4
340c1bc742181ded4930842b46e9507372f0b1b963James Dong    VLD1.8   {d19[]},[r5]!
350c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.S16 q11,q11,#2
360c1bc742181ded4930842b46e9507372f0b1b963James Dong    VEXT.8   d18,d18,d19,#4
370c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d19,d17,d15
380c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d18,d14,d16
390c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.S16 q10,q11,q10
400c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d24,d4,d8
410c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d18,d19
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d19,d12,d15
430c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQADD.U8 d23,d5,d18
440c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVN.S16 d20,q10
450c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d31,d31,d19
460c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQSUB.U8 d22,d5,d18
470c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQADD.U8 d19,d9,d18
480c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d26,d24,d6
490c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.S8  d20,d20,d31
500c1bc742181ded4930842b46e9507372f0b1b963James Dong    VNEG.S8  d31,d31
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQSUB.U8 d21,d9,d18
520c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d27,d24,d10
530c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.U8  d30,d26,d22
540c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.S8  d20,d20,d31
550c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q14,d4
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMOVL.U8 q12,d8
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.S8 q14,q14,d20
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSUBW.S8 q12,q12,d20
590c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d29,q14
600c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQMOVUN.S16 d24,q12
610c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMAX.U8  d25,d27,d21
620c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.U8  d30,d30,d23
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    VMIN.U8  d25,d25,d19
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d4,d16
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d30,d5,d17
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d8,d16
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d25,d9,d12
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
690c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
700c1bc742181ded4930842b46e9507372f0b1b963James Dong
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    .global armVCM4P10_DeblockingLumabSGE4_unsafe
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    .func   armVCM4P10_DeblockingLumabSGE4_unsafe
730c1bc742181ded4930842b46e9507372f0b1b963James DongarmVCM4P10_DeblockingLumabSGE4_unsafe:
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U8  d19,d0,#2
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d19,d19,d15
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q10,d8,d4
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADD.I8  d19,d19,d15
780c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q11,d6,d9
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q10,d5
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    VCGT.U8  d19,d19,d13
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U16 q11,q11,#1
820c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U16 q11,q12,q11
830c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q12,d6
840c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q13,d7,d6
850c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d17,d17,d19
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d28,d4,d9
870c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSRA.U16 q13,q12,#1
880c1bc742181ded4930842b46e9507372f0b1b963James Dong    VAND     d12,d12,d19
890c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d29,q11,#1
900c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d28,d28,d5
910c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d30,q12,#2
920c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q11,d10,d5
930c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q10,d9
940c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d28,d17
950c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d31,q13,#2
960c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDL.U8 q13,d11,d10
970c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSHR.U16 q11,q11,#1
980c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U16 q11,q12,q11
990c1bc742181ded4930842b46e9507372f0b1b963James Dong    VADDW.U8 q12,q12,d10
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong    VHADD.U8 d28,d8,d5
1010c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d29,d4,d16
1020c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d30,d5,d17
1030c1bc742181ded4930842b46e9507372f0b1b963James Dong    VSRA.U16 q13,q12,#1
1040c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d25,q12,#2
1050c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d24,q11,#1
1060c1bc742181ded4930842b46e9507372f0b1b963James Dong    VRHADD.U8 d22,d28,d9
1070c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d25,d9,d12
1080c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d31,d6,d17
1090c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d22,d12
1100c1bc742181ded4930842b46e9507372f0b1b963James Dong    VQRSHRN.U16 d28,q13,#2
1110c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d24,d8,d16
1120c1bc742181ded4930842b46e9507372f0b1b963James Dong    VBIF     d28,d10,d12
1130c1bc742181ded4930842b46e9507372f0b1b963James Dong    BX       lr
1140c1bc742181ded4930842b46e9507372f0b1b963James Dong    .endfunc
1150c1bc742181ded4930842b46e9507372f0b1b963James Dong
1160c1bc742181ded4930842b46e9507372f0b1b963James Dong    .end
1170c1bc742181ded4930842b46e9507372f0b1b963James Dong
118