diff options
author | Martin Storsjö <martin@martin.st> | 2017-01-10 16:49:13 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2017-03-11 13:14:49 +0200 |
commit | 83399cf569c9f78e0c72e21aa67184c222bb2d59 (patch) | |
tree | 65961e0c900389b164bf2b523fd202ad680816e2 /libavcodec/arm | |
parent | 92ab8374b1051dd632c3ccc326b6cb1d564f293f (diff) | |
download | ffmpeg-83399cf569c9f78e0c72e21aa67184c222bb2d59.tar.gz |
arm: vp9lpf: Interleave the start of flat8in into the calculation above
This adds lots of extra .ifs, but speeds it up by a couple cycles,
by avoiding stalls.
This is cherrypicked from libav commit
e18c39005ad1dbb178b336f691da1de91afd434e.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/arm')
-rw-r--r-- | libavcodec/arm/vp9lpf_neon.S | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/arm/vp9lpf_neon.S b/libavcodec/arm/vp9lpf_neon.S index 3d289e5d08..b90c53630a 100644 --- a/libavcodec/arm/vp9lpf_neon.S +++ b/libavcodec/arm/vp9lpf_neon.S @@ -182,16 +182,20 @@ vmovl.u8 q0, d22 @ p1 vmovl.u8 q1, d25 @ q1 +.if \wd >= 8 + vmov r2, r3, d6 +.endif vaddw.s8 q0, q0, \tmp3 @ p1 + f vsubw.s8 q1, q1, \tmp3 @ q1 - f +.if \wd >= 8 + orrs r2, r2, r3 +.endif vqmovun.s16 d0, q0 @ out p1 vqmovun.s16 d2, q1 @ out q1 vbit d22, d0, d5 @ if (!hev && fm && !flat8in) vbit d25, d2, d5 .if \wd >= 8 - vmov r2, r3, d6 - orrs r2, r2, r3 @ If no pixels need flat8in, jump to flat8out @ (or to a writeout of the inner 4 pixels, for wd=8) beq 6f |