@ -935,23 +935,23 @@ function idct32_1d_8x32_pass1_neon
.macro store_rev a, b
/ / There' s n o r e v12 8 i n s t r u c t i o n , b u t w e r e v e r s e e a c h 6 4 b i t
/ / half, a n d t h e n f l i p t h e m u s i n g a n e x t w i t h 8 b y t e s o f f s e t .
rev6 4 v1 . 8 h , v \ b \ ( ) . 8 h
st1 { v \ a \ ( ) . 8 h } , [ x0 ] , #16
rev6 4 v0 . 8 h , v \ a \ ( ) . 8 h
rev6 4 v1 . 8 h , \ b
st1 { \ a } , [ x0 ] , #16
rev6 4 v0 . 8 h , \ a
ext v1 . 1 6 b , v1 . 1 6 b , v1 . 1 6 b , #8
st1 { v \ b \ ( ) . 8 h } , [ x0 ] , #16
st1 { \ b } , [ x0 ] , #16
ext v0 . 1 6 b , v0 . 1 6 b , v0 . 1 6 b , #8
st1 { v1 . 8 h } , [ x0 ] , #16
st1 { v0 . 8 h } , [ x0 ] , #16
.endm
store_ r e v 1 6 , 2 4
store_ r e v 1 7 , 2 5
store_ r e v 1 8 , 2 6
store_ r e v 1 9 , 2 7
store_ r e v 2 0 , 2 8
store_ r e v 2 1 , 2 9
store_ r e v 2 2 , 3 0
store_ r e v 2 3 , 3 1
store_ r e v v16 . 8 h , v24 . 8 h
store_ r e v v17 . 8 h , v25 . 8 h
store_ r e v v18 . 8 h , v26 . 8 h
store_ r e v v19 . 8 h , v27 . 8 h
store_ r e v v20 . 8 h , v28 . 8 h
store_ r e v v21 . 8 h , v29 . 8 h
store_ r e v v22 . 8 h , v30 . 8 h
store_ r e v v23 . 8 h , v31 . 8 h
sub x0 , x0 , #512
.purgem store_rev
@ -977,14 +977,14 @@ function idct32_1d_8x32_pass1_neon
/ / subtracted f r o m t h e o u t p u t .
.macro store_rev a, b
ld1 { v4 . 8 h } , [ x0 ]
rev6 4 v1 . 8 h , v \ b \ ( ) . 8 h
add v4 . 8 h , v4 . 8 h , v \ a \ ( ) . 8 h
rev6 4 v0 . 8 h , v \ a \ ( ) . 8 h
rev6 4 v1 . 8 h , \ b
add v4 . 8 h , v4 . 8 h , \ a
rev6 4 v0 . 8 h , \ a
st1 { v4 . 8 h } , [ x0 ] , #16
ext v1 . 1 6 b , v1 . 1 6 b , v1 . 1 6 b , #8
ld1 { v5 . 8 h } , [ x0 ]
ext v0 . 1 6 b , v0 . 1 6 b , v0 . 1 6 b , #8
add v5 . 8 h , v5 . 8 h , v \ b \ ( ) . 8 h
add v5 . 8 h , v5 . 8 h , \ b
st1 { v5 . 8 h } , [ x0 ] , #16
ld1 { v6 . 8 h } , [ x0 ]
sub v6 . 8 h , v6 . 8 h , v1 . 8 h
@ -994,14 +994,14 @@ function idct32_1d_8x32_pass1_neon
st1 { v7 . 8 h } , [ x0 ] , #16
.endm
store_ r e v 3 1 , 2 3
store_ r e v 3 0 , 2 2
store_ r e v 2 9 , 2 1
store_ r e v 2 8 , 2 0
store_ r e v 2 7 , 1 9
store_ r e v 2 6 , 1 8
store_ r e v 2 5 , 1 7
store_ r e v 2 4 , 1 6
store_ r e v v31 . 8 h , v23 . 8 h
store_ r e v v30 . 8 h , v22 . 8 h
store_ r e v v29 . 8 h , v21 . 8 h
store_ r e v v28 . 8 h , v20 . 8 h
store_ r e v v27 . 8 h , v19 . 8 h
store_ r e v v26 . 8 h , v18 . 8 h
store_ r e v v25 . 8 h , v17 . 8 h
store_ r e v v24 . 8 h , v16 . 8 h
.purgem store_rev
ret
endfunc
@ -1047,21 +1047,21 @@ function idct32_1d_8x32_pass2_neon
.if \ neg = = 0
ld1 { v4 . 8 h } , [ x2 ] , x9
ld1 { v5 . 8 h } , [ x2 ] , x9
add v4 . 8 h , v4 . 8 h , v \ a \ ( ) . 8 h
add v4 . 8 h , v4 . 8 h , \ a
ld1 { v6 . 8 h } , [ x2 ] , x9
add v5 . 8 h , v5 . 8 h , v \ b \ ( ) . 8 h
add v5 . 8 h , v5 . 8 h , \ b
ld1 { v7 . 8 h } , [ x2 ] , x9
add v6 . 8 h , v6 . 8 h , v \ c \ ( ) . 8 h
add v7 . 8 h , v7 . 8 h , v \ d \ ( ) . 8 h
add v6 . 8 h , v6 . 8 h , \ c
add v7 . 8 h , v7 . 8 h , \ d
.else
ld1 { v4 . 8 h } , [ x2 ] , x7
ld1 { v5 . 8 h } , [ x2 ] , x7
sub v4 . 8 h , v4 . 8 h , v \ a \ ( ) . 8 h
sub v4 . 8 h , v4 . 8 h , \ a
ld1 { v6 . 8 h } , [ x2 ] , x7
sub v5 . 8 h , v5 . 8 h , v \ b \ ( ) . 8 h
sub v5 . 8 h , v5 . 8 h , \ b
ld1 { v7 . 8 h } , [ x2 ] , x7
sub v6 . 8 h , v6 . 8 h , v \ c \ ( ) . 8 h
sub v7 . 8 h , v7 . 8 h , v \ d \ ( ) . 8 h
sub v6 . 8 h , v6 . 8 h , \ c
sub v7 . 8 h , v7 . 8 h , \ d
.endif
ld1 { v0 . 8 b } , [ x0 ] , x1
ld1 { v1 . 8 b } , [ x0 ] , x1
@ -1085,15 +1085,15 @@ function idct32_1d_8x32_pass2_neon
st1 { v6 . 8 b } , [ x0 ] , x1
st1 { v7 . 8 b } , [ x0 ] , x1
.endm
load_ a c c _ s t o r e 3 1 , 3 0 , 2 9 , 2 8
load_ a c c _ s t o r e 2 7 , 2 6 , 2 5 , 2 4
load_ a c c _ s t o r e 2 3 , 2 2 , 2 1 , 2 0
load_ a c c _ s t o r e 1 9 , 1 8 , 1 7 , 1 6
load_ a c c _ s t o r e v31 . 8 h , v30 . 8 h , v29 . 8 h , v28 . 8 h
load_ a c c _ s t o r e v27 . 8 h , v26 . 8 h , v25 . 8 h , v24 . 8 h
load_ a c c _ s t o r e v23 . 8 h , v22 . 8 h , v21 . 8 h , v20 . 8 h
load_ a c c _ s t o r e v19 . 8 h , v18 . 8 h , v17 . 8 h , v16 . 8 h
sub x2 , x2 , x9
load_ a c c _ s t o r e 1 6 , 1 7 , 1 8 , 1 9 , 1
load_ a c c _ s t o r e 2 0 , 2 1 , 2 2 , 2 3 , 1
load_ a c c _ s t o r e 2 4 , 2 5 , 2 6 , 2 7 , 1
load_ a c c _ s t o r e 2 8 , 2 9 , 3 0 , 3 1 , 1
load_ a c c _ s t o r e v16 . 8 h , v17 . 8 h , v18 . 8 h , v19 . 8 h , 1
load_ a c c _ s t o r e v20 . 8 h , v21 . 8 h , v22 . 8 h , v23 . 8 h , 1
load_ a c c _ s t o r e v24 . 8 h , v25 . 8 h , v26 . 8 h , v27 . 8 h , 1
load_ a c c _ s t o r e v28 . 8 h , v29 . 8 h , v30 . 8 h , v31 . 8 h , 1
.purgem load_acc_store
ret
endfunc