aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan E. Egge <unlord@xiph.org>2024-02-20 04:35:47 +0000
committerNathan E. Egge <unlord@xiph.org>2024-02-21 06:58:56 -0500
commit6249bd8809929d87ddc755ee360a190b22fbb069 (patch)
treea142990441507e5130042be836d965b634f8777d
parent6e5d1df63371e41ccd0c3572fde9e38bd5d0757b (diff)
downloadlibdav1d-6249bd8809929d87ddc755ee360a190b22fbb069.tar.gz
arm32/itx: Reuse horz_16x4 epilog, saves 336 bytes
-rw-r--r--src/arm/32/itx.S16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/arm/32/itx.S b/src/arm/32/itx.S
index 854ef08..9ba1df7 100644
--- a/src/arm/32/itx.S
+++ b/src/arm/32/itx.S
@@ -1447,14 +1447,16 @@ function inv_txfm_horz\suffix\()_16x4_neon
.else
identity_4x16_shift1 d0[0]
.endif
+ b L(horz_16x4_epilog)
.else
blx r4
-.endif
-.if \shift > 0
.irp i, q8, q9, q10, q11, q12, q13, q14, q15
vrshr.s16 \i, \i, #\shift
.endr
-.endif
+.if \shift == 1
+ b L(horz_16x4_epilog)
+.else
+L(horz_16x4_epilog):
transpose_4x4h q8, q9, d16, d17, d18, d19
transpose_4x4h q10, q11, d20, d21, d22, d23
transpose_4x4h q12, q13, d24, d25, d26, d27
@@ -1465,13 +1467,15 @@ function inv_txfm_horz\suffix\()_16x4_neon
.endr
pop {pc}
+.endif
+.endif
endfunc
.endm
-def_horz_16 scale=0, identity=0, shift=2
-def_horz_16 scale=1, identity=0, shift=1, suffix=_scale
-def_horz_16 scale=0, identity=1, shift=-2, suffix=_identity
def_horz_16 scale=1, identity=1, shift=-1, suffix=_scale_identity
+def_horz_16 scale=0, identity=1, shift=-2, suffix=_identity
+def_horz_16 scale=1, identity=0, shift=1, suffix=_scale
+def_horz_16 scale=0, identity=0, shift=2
function inv_txfm_add_vert_4x16_neon
push {lr}