@ -38,49 +38,49 @@ function ff_sbc_analyze_4_neon, export=1
/ * TODO : merge e v e n a n d o d d c a s e s ( o r e v e n m e r g e a l l f o u r c a l l s t o t h i s
* function) i n o r d e r t o h a v e o n l y a l i g n e d r e a d s f r o m ' i n ' a r r a y
* and r e d u c e n u m b e r o f l o a d i n s t r u c t i o n s * /
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmull. s16 q0 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmull. s16 q1 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmull. s16 q0 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmull. s16 q1 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmlal. s16 q1 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q0 , d4 , d8
vmlal. s16 q1 , d5 , d9
vmlal. s16 q0 , d16 , d20
vmlal. s16 q1 , d17 , d21
vpadd. s32 d0 , d0 , d1
vpadd. s32 d1 , d2 , d3
vrshrn. s32 d0 , q0 , S B C _ P R O T O _ F I X E D _ S C A L E
vld1 . 1 6 { d2 , d3 , d4 , d5 } , [ r2 , : 1 2 8 ] !
vld1 . 1 6 { d16 , d17 , d18 , d19 } , [ r2 , : 1 2 8 ] !
vdup. i 3 2 d1 , d0 [ 1 ] / * T O D O : c a n b e e l i m i n a t e d * /
vdup. i 3 2 d0 , d0 [ 0 ] / * T O D O : c a n b e e l i m i n a t e d * /
vmull. s16 q3 , d2 , d0
vmull. s16 q4 , d3 , d0
vmlal. s16 q3 , d4 , d1
vmlal. s16 q4 , d5 , d1
vmull. s16 q10 , d16 , d0
vmull. s16 q11 , d17 , d0
vmlal. s16 q10 , d18 , d1
vmlal. s16 q11 , d19 , d1
vpadd. s32 d0 , d6 , d7 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d1 , d8 , d9 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d0 , d20 , d21 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d1 , d22 , d23 / * T O D O : c a n b e e l i m i n a t e d * /
vst1 . 3 2 { d0 , d1 } , [ r1 , : 1 2 8 ]
@ -91,57 +91,57 @@ function ff_sbc_analyze_8_neon, export=1
/ * TODO : merge e v e n a n d o d d c a s e s ( o r e v e n m e r g e a l l f o u r c a l l s t o t h i s
* function) i n o r d e r t o h a v e o n l y a l i g n e d r e a d s f r o m ' i n ' a r r a y
* and r e d u c e n u m b e r o f l o a d i n s t r u c t i o n s * /
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmull. s16 q6 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmull. s16 q7 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmull. s16 q8 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmull. s16 q9 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmlal. s16 q7 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q8 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmlal. s16 q9 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmlal. s16 q7 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q8 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmlal. s16 q9 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmlal. s16 q7 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q8 , d6 , d10
vld1 . 1 6 { d4 , d5 } , [ r0 , : 6 4 ] !
vmlal. s16 q9 , d7 , d11
vld1 . 1 6 { d8 , d9 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d8
vld1 . 1 6 { d6 , d7 } , [ r0 , : 6 4 ] !
vmlal. s16 q7 , d5 , d9
vld1 . 1 6 { d10 , d11 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q8 , d6 , d10
vmlal. s16 q9 , d7 , d11
vpadd. s32 d0 , d12 , d13
vpadd. s32 d1 , d14 , d15
vpadd. s32 d2 , d16 , d17
vpadd. s32 d3 , d18 , d19
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmull. s16 q12 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmull. s16 q13 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmull. s16 q14 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmull. s16 q15 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmlal. s16 q13 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q14 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmlal. s16 q15 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmlal. s16 q13 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q14 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmlal. s16 q15 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmlal. s16 q13 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q14 , d18 , d22
vld1 . 1 6 { d16 , d17 } , [ r0 , : 6 4 ] !
vmlal. s16 q15 , d19 , d23
vld1 . 1 6 { d20 , d21 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d20
vld1 . 1 6 { d18 , d19 } , [ r0 , : 6 4 ] !
vmlal. s16 q13 , d17 , d21
vld1 . 1 6 { d22 , d23 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q14 , d18 , d22
vmlal. s16 q15 , d19 , d23
vpadd. s32 d0 , d24 , d25
vpadd. s32 d1 , d26 , d27
vpadd. s32 d2 , d28 , d29
vpadd. s32 d3 , d30 , d31
vrshr. s32 q0 , q0 , S B C _ P R O T O _ F I X E D _ S C A L E
vrshr. s32 q1 , q1 , S B C _ P R O T O _ F I X E D _ S C A L E
@ -153,38 +153,38 @@ function ff_sbc_analyze_8_neon, export=1
vdup. i 3 2 d1 , d0 [ 1 ] / * T O D O : c a n b e e l i m i n a t e d * /
vdup. i 3 2 d0 , d0 [ 0 ] / * T O D O : c a n b e e l i m i n a t e d * /
vld1 . 1 6 { d4 , d5 } , [ r2 , : 1 2 8 ] !
vmull. s16 q6 , d4 , d0
vld1 . 1 6 { d6 , d7 } , [ r2 , : 1 2 8 ] !
vmull. s16 q7 , d5 , d0
vmull. s16 q8 , d6 , d0
vmull. s16 q9 , d7 , d0
vld1 . 1 6 { d4 , d5 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d1
vld1 . 1 6 { d6 , d7 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q7 , d5 , d1
vmlal. s16 q8 , d6 , d1
vmlal. s16 q9 , d7 , d1
vld1 . 1 6 { d4 , d5 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d2
vld1 . 1 6 { d6 , d7 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q7 , d5 , d2
vmlal. s16 q8 , d6 , d2
vmlal. s16 q9 , d7 , d2
vld1 . 1 6 { d4 , d5 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q6 , d4 , d3
vld1 . 1 6 { d6 , d7 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q7 , d5 , d3
vmlal. s16 q8 , d6 , d3
vmlal. s16 q9 , d7 , d3
vpadd. s32 d0 , d12 , d13 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d1 , d14 , d15 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d2 , d16 , d17 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d3 , d18 , d19 / * T O D O : c a n b e e l i m i n a t e d * /
vld1 . 1 6 { d16 , d17 } , [ r2 , : 1 2 8 ] !
vmull. s16 q12 , d16 , d0
vld1 . 1 6 { d18 , d19 } , [ r2 , : 1 2 8 ] !
vmull. s16 q13 , d17 , d0
vmull. s16 q14 , d18 , d0
vmull. s16 q15 , d19 , d0
vld1 . 1 6 { d16 , d17 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d1
vld1 . 1 6 { d18 , d19 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q13 , d17 , d1
vmlal. s16 q14 , d18 , d1
vmlal. s16 q15 , d19 , d1
vld1 . 1 6 { d16 , d17 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d2
vld1 . 1 6 { d18 , d19 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q13 , d17 , d2
vmlal. s16 q14 , d18 , d2
vmlal. s16 q15 , d19 , d2
vld1 . 1 6 { d16 , d17 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q12 , d16 , d3
vld1 . 1 6 { d18 , d19 } , [ r2 , : 1 2 8 ] !
vmlal. s16 q13 , d17 , d3
vmlal. s16 q14 , d18 , d3
vmlal. s16 q15 , d19 , d3
vpadd. s32 d0 , d24 , d25 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d1 , d26 , d27 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d2 , d28 , d29 / * T O D O : c a n b e e l i m i n a t e d * /
vpadd. s32 d3 , d30 , d31 / * T O D O : c a n b e e l i m i n a t e d * /
vst1 . 3 2 { d0 , d1 , d2 , d3 } , [ r1 , : 1 2 8 ]