@ -20,25 +20,6 @@
# include " l i b a v u t i l / a r m / a s m . S "
# include " l i b a v u t i l / a r m / a s m . S "
function f f _ a c3 _ m a x _ m s b _ a b s _ i n t 1 6 _ n e o n , e x p o r t =1
vmov. i 1 6 q0 , #0
vmov. i 1 6 q2 , #0
1 : vld1 . 1 6 { q1 } , [ r0 ,: 1 2 8 ] !
vabs. s16 q1 , q1
vld1 . 1 6 { q3 } , [ r0 ,: 1 2 8 ] !
vabs. s16 q3 , q3
vorr q0 , q0 , q1
vorr q2 , q2 , q3
subs r1 , r1 , #16
bgt 1 b
vorr q0 , q0 , q2
vorr d0 , d0 , d1
vpmax. u 1 6 d0 , d0 , d0
vpmax. u 1 6 d0 , d0 , d0
vmov. u 1 6 r0 , d0 [ 0 ]
bx l r
endfunc
function f f _ a c3 _ e x p o n e n t _ m i n _ n e o n , e x p o r t =1
function f f _ a c3 _ e x p o n e n t _ m i n _ n e o n , e x p o r t =1
cmp r1 , #0
cmp r1 , #0
it e q
it e q
@ -59,27 +40,6 @@ function ff_ac3_exponent_min_neon, export=1
pop { p c }
pop { p c }
endfunc
endfunc
function f f _ a c3 _ l s h i f t _ i n t 1 6 _ n e o n , e x p o r t =1
vdup. 1 6 q0 , r2
1 : vld1 . 1 6 { q1 } , [ r0 ,: 1 2 8 ]
vshl. s16 q1 , q1 , q0
vst1 . 1 6 { q1 } , [ r0 ,: 1 2 8 ] !
subs r1 , r1 , #8
bgt 1 b
bx l r
endfunc
function f f _ a c3 _ r s h i f t _ i n t 3 2 _ n e o n , e x p o r t =1
rsb r2 , r2 , #0
vdup. 3 2 q0 , r2
1 : vld1 . 3 2 { q1 } , [ r0 ,: 1 2 8 ]
vshl. s32 q1 , q1 , q0
vst1 . 3 2 { q1 } , [ r0 ,: 1 2 8 ] !
subs r1 , r1 , #4
bgt 1 b
bx l r
endfunc
function f f _ f l o a t _ t o _ f i x e d24 _ n e o n , e x p o r t =1
function f f _ f l o a t _ t o _ f i x e d24 _ n e o n , e x p o r t =1
1 : vld1 . 3 2 { q0 - q1 } , [ r1 ,: 1 2 8 ] !
1 : vld1 . 3 2 { q0 - q1 } , [ r1 ,: 1 2 8 ] !
vcvt. s32 . f32 q0 , q0 , #24
vcvt. s32 . f32 q0 , q0 , #24
@ -109,29 +69,6 @@ function ff_ac3_extract_exponents_neon, export=1
bx l r
bx l r
endfunc
endfunc
function f f _ a p p l y _ w i n d o w _ i n t 1 6 _ n e o n , e x p o r t =1
push { r4 ,l r }
add r4 , r1 , r3 , l s l #1
add l r , r0 , r3 , l s l #1
sub r4 , r4 , #16
sub l r , l r , #16
mov r12 , #- 16
1 :
vld1 . 1 6 { q0 } , [ r1 ,: 1 2 8 ] !
vld1 . 1 6 { q2 } , [ r2 ,: 1 2 8 ] !
vld1 . 1 6 { q1 } , [ r4 ,: 1 2 8 ] , r12
vrev6 4 . 1 6 q3 , q2
vqrdmulh. s16 q0 , q0 , q2
vqrdmulh. s16 d2 , d2 , d7
vqrdmulh. s16 d3 , d3 , d6
vst1 . 1 6 { q0 } , [ r0 ,: 1 2 8 ] !
vst1 . 1 6 { q1 } , [ l r ,: 1 2 8 ] , r12
subs r3 , r3 , #16
bgt 1 b
pop { r4 ,p c }
endfunc
function f f _ a c3 _ s u m _ s q u a r e _ b u t t e r f l y _ i n t 3 2 _ n e o n , e x p o r t =1
function f f _ a c3 _ s u m _ s q u a r e _ b u t t e r f l y _ i n t 3 2 _ n e o n , e x p o r t =1
vmov. i 6 4 q0 , #0
vmov. i 6 4 q0 , #0
vmov. i 6 4 q1 , #0
vmov. i 6 4 q1 , #0