@ -193,41 +193,41 @@ endfunc
/ / for s i z e > = 1 6 ) , a n d m u l t i p l y - a c c u m u l a t e i n t o d s t 1 a n d d s t 3 ( o r
/ / dst1 - d s t 2 a n d d s t 3 - d s t 4 f o r s i z e > = 1 6 )
.macro extmla dst1 , d s t 2 , d s t 3 , d s t 4 , s r c1 , s r c2 , s r c3 , s r c4 , s r c5 , s r c6 , o f f s e t , s i z e
ext v20 . 1 6 b , \ s r c1 , \ s r c2 , #( 2 * \ o f f s e t )
ext v22 . 1 6 b , \ s r c4 , \ s r c5 , #( 2 * \ o f f s e t )
ext v20 . 1 6 b , \ s r c1 \ ( ) . 1 6 b , \ s r c2 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
ext v22 . 1 6 b , \ s r c4 \ ( ) . 1 6 b , \ s r c5 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
.if \ size > = 1 6
mla \ d s t 1 , v20 . 8 h , v0 . h [ \ o f f s e t ]
ext v21 . 1 6 b , \ s r c2 , \ s r c3 , #( 2 * \ o f f s e t )
mla \ d s t 3 , v22 . 8 h , v0 . h [ \ o f f s e t ]
ext v23 . 1 6 b , \ s r c5 , \ s r c6 , #( 2 * \ o f f s e t )
mla \ d s t 2 , v21 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 4 , v23 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 1 \ ( ) . 8 h , v20 . 8 h , v0 . h [ \ o f f s e t ]
ext v21 . 1 6 b , \ s r c2 \ ( ) . 1 6 b , \ s r c3 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
mla \ d s t 3 \ ( ) . 8 h , v22 . 8 h , v0 . h [ \ o f f s e t ]
ext v23 . 1 6 b , \ s r c5 \ ( ) . 1 6 b , \ s r c6 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
mla \ d s t 2 \ ( ) . 8 h , v21 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 4 \ ( ) . 8 h , v23 . 8 h , v0 . h [ \ o f f s e t ]
.else
mla \ d s t 1 , v20 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 3 , v22 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 1 \ ( ) . 8 h , v20 . 8 h , v0 . h [ \ o f f s e t ]
mla \ d s t 3 \ ( ) . 8 h , v22 . 8 h , v0 . h [ \ o f f s e t ]
.endif
.endm
/ / The s a m e a s a b o v e , b u t d o n ' t a c c u m u l a t e s t r a i g h t i n t o t h e
/ / destination, b u t u s e a t e m p r e g i s t e r a n d a c c u m u l a t e w i t h s a t u r a t i o n .
.macro extmulqadd dst1 , d s t 2 , d s t 3 , d s t 4 , s r c1 , s r c2 , s r c3 , s r c4 , s r c5 , s r c6 , o f f s e t , s i z e
ext v20 . 1 6 b , \ s r c1 , \ s r c2 , #( 2 * \ o f f s e t )
ext v22 . 1 6 b , \ s r c4 , \ s r c5 , #( 2 * \ o f f s e t )
ext v20 . 1 6 b , \ s r c1 \ ( ) . 1 6 b , \ s r c2 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
ext v22 . 1 6 b , \ s r c4 \ ( ) . 1 6 b , \ s r c5 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
.if \ size > = 1 6
mul v20 . 8 h , v20 . 8 h , v0 . h [ \ o f f s e t ]
ext v21 . 1 6 b , \ s r c2 , \ s r c3 , #( 2 * \ o f f s e t )
ext v21 . 1 6 b , \ s r c2 \ ( ) . 1 6 b , \ s r c3 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
mul v22 . 8 h , v22 . 8 h , v0 . h [ \ o f f s e t ]
ext v23 . 1 6 b , \ s r c5 , \ s r c6 , #( 2 * \ o f f s e t )
ext v23 . 1 6 b , \ s r c5 \ ( ) . 1 6 b , \ s r c6 \ ( ) . 1 6 b , #( 2 * \ o f f s e t )
mul v21 . 8 h , v21 . 8 h , v0 . h [ \ o f f s e t ]
mul v23 . 8 h , v23 . 8 h , v0 . h [ \ o f f s e t ]
.else
mul v20 . 8 h , v20 . 8 h , v0 . h [ \ o f f s e t ]
mul v22 . 8 h , v22 . 8 h , v0 . h [ \ o f f s e t ]
.endif
sqadd \ d s t 1 , \ d s t 1 , v20 . 8 h
sqadd \ d s t 3 , \ d s t 3 , v22 . 8 h
sqadd \ d s t 1 \ ( ) . 8 h , \ d s t 1 \ ( ) . 8 h , v20 . 8 h
sqadd \ d s t 3 \ ( ) . 8 h , \ d s t 3 \ ( ) . 8 h , v22 . 8 h
.if \ size > = 1 6
sqadd \ d s t 2 , \ d s t 2 , v21 . 8 h
sqadd \ d s t 4 , \ d s t 4 , v23 . 8 h
sqadd \ d s t 2 \ ( ) . 8 h , \ d s t 2 \ ( ) . 8 h , v21 . 8 h
sqadd \ d s t 4 \ ( ) . 8 h , \ d s t 4 \ ( ) . 8 h , v23 . 8 h
.endif
.endm
@ -292,13 +292,13 @@ function \type\()_8tap_\size\()h_\idx1\idx2
mul v2 . 8 h , v5 . 8 h , v0 . h [ 0 ]
mul v25 . 8 h , v17 . 8 h , v0 . h [ 0 ]
.endif
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , 1 , \ s i z e
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , 2 , \ s i z e
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , \ i d x1 , \ s i z e
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , 5 , \ s i z e
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , 6 , \ s i z e
extmla v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , 7 , \ s i z e
extmulqadd v1 . 8 h , v2 . 8 h , v24 . 8 h , v25 . 8 h , v4 . 1 6 b , v5 . 1 6 b , v6 . 1 6 b , v16 . 1 6 b , v17 . 1 6 b , v18 . 1 6 b , \ i d x2 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , 1 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , 2 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , \ i d x1 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , 5 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , 6 , \ s i z e
extmla v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , 7 , \ s i z e
extmulqadd v1 , v2 , v24 , v25 , v4 , v5 , v6 , v16 , v17 , v18 , \ i d x2 , \ s i z e
/ / Round, s h i f t a n d s a t u r a t e
sqrshrun v1 . 8 b , v1 . 8 h , #7