diff options
author | Lynne <dev@lynne.ee> | 2019-04-24 12:19:48 +0100 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2019-04-26 20:39:38 -0300 |
commit | 4b7166c9d57d3cc7ece02171338a27e129b12250 (patch) | |
tree | d2e3baac149d4bb6436ffda5cb50aa0cbc89fc31 /libavcodec/x86/opusdsp.asm | |
parent | c2f305ca17e3b33a439137c86cee84fcdfaf7bb3 (diff) | |
download | ffmpeg-4b7166c9d57d3cc7ece02171338a27e129b12250.tar.gz |
x86/opusdsp: replace loads with shuffles
Has a slight speedup.
Can't be carried over to aarch64, since it has no shufps-like instruction.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/x86/opusdsp.asm')
-rw-r--r-- | libavcodec/x86/opusdsp.asm | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/libavcodec/x86/opusdsp.asm b/libavcodec/x86/opusdsp.asm index 6c99821b89..f5d206a8b1 100644 --- a/libavcodec/x86/opusdsp.asm +++ b/libavcodec/x86/opusdsp.asm @@ -24,9 +24,6 @@ SECTION_RODATA ; 0.85..^1 0.85..^2 0.85..^3 0.85..^4 tab_st: dd 0x3f599a00, 0x3f38f671, 0x3f1d382a, 0x3f05a32f -tab_x0: dd 0x0, 0x3f599a00, 0x3f599a00, 0x3f599a00 -tab_x1: dd 0x0, 0x0, 0x3f38f671, 0x3f38f671 -tab_x2: dd 0x0, 0x0, 0x0, 0x3f1d382a SECTION .text @@ -45,9 +42,9 @@ cglobal opus_deemphasis, 4, 4, 8, out, in, coeff, len %endif movaps m4, [tab_st] - movaps m5, [tab_x0] - movaps m6, [tab_x1] - movaps m7, [tab_x2] + VBROADCASTSS m5, m4 + shufps m6, m4, m4, q1111 + shufps m7, m4, m4, q2222 .loop: movaps m1, [inq] ; x0, x1, x2, x3 |