mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-06-16 04:32:47 +02:00
avcodec/x86/hpeldsp: Avoid constant in {avg,put}_pixels16_xy2_ssse3
No difference in benchmarks here. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
+24
-28
@@ -27,11 +27,9 @@
|
||||
|
||||
%include "libavutil/x86/x86util.asm"
|
||||
|
||||
SECTION_RODATA
|
||||
cextern pb_1
|
||||
cextern pw_1
|
||||
cextern pw_2
|
||||
pb_interleave16: db 0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15
|
||||
|
||||
cextern pw_8192
|
||||
|
||||
@@ -503,51 +501,49 @@ SET_PIXELS_XY2 avg, pw_1, _no_rnd
|
||||
|
||||
%macro SSSE3_PIXELS_XY2 1-2
|
||||
cglobal %1_pixels16_xy2, 4,5,%2
|
||||
mova m4, [pb_interleave16]
|
||||
mova m5, [pb_1]
|
||||
movu m0, [r1]
|
||||
movu m1, [r1+1]
|
||||
pmaddubsw m0, m5
|
||||
movu m0, [r1]
|
||||
mova m5, [pb_1]
|
||||
mova m4, [pw_8192]
|
||||
pmaddubsw m1, m5
|
||||
pmaddubsw m0, m5
|
||||
xor r4, r4
|
||||
add r1, r2
|
||||
.loop:
|
||||
movu m2, [r1+r4]
|
||||
movu m3, [r1+r4+1]
|
||||
pmaddubsw m2, m5
|
||||
movu m2, [r1+r4]
|
||||
pmaddubsw m3, m5
|
||||
paddw m0, m2
|
||||
paddw m1, m3
|
||||
pmulhrsw m0, [pw_8192]
|
||||
pmulhrsw m1, [pw_8192]
|
||||
pmaddubsw m2, m5
|
||||
%ifidn %1, avg
|
||||
mova m6, [r0+r4]
|
||||
packuswb m0, m1
|
||||
pshufb m0, m4
|
||||
%endif
|
||||
paddw m1, m3
|
||||
paddw m0, m2
|
||||
pmulhrsw m1, m4
|
||||
pmulhrsw m0, m4
|
||||
pslldq m1, 1
|
||||
por m0, m1
|
||||
%ifidn %1, avg
|
||||
pavgb m0, m6
|
||||
%else
|
||||
packuswb m0, m1
|
||||
pshufb m0, m4
|
||||
%endif
|
||||
mova [r0+r4], m0
|
||||
add r4, r2
|
||||
|
||||
movu m0, [r1+r4]
|
||||
movu m1, [r1+r4+1]
|
||||
pmaddubsw m0, m5
|
||||
movu m0, [r1+r4]
|
||||
pmaddubsw m1, m5
|
||||
paddw m2, m0
|
||||
paddw m3, m1
|
||||
pmulhrsw m2, [pw_8192]
|
||||
pmulhrsw m3, [pw_8192]
|
||||
pmaddubsw m0, m5
|
||||
%ifidn %1, avg
|
||||
mova m6, [r0+r4]
|
||||
packuswb m2, m3
|
||||
pshufb m2, m4
|
||||
%endif
|
||||
paddw m3, m1
|
||||
paddw m2, m0
|
||||
pmulhrsw m3, m4
|
||||
pmulhrsw m2, m4
|
||||
pslldq m3, 1
|
||||
por m2, m3
|
||||
%ifidn %1, avg
|
||||
pavgb m2, m6
|
||||
%else
|
||||
packuswb m2, m3
|
||||
pshufb m2, m4
|
||||
%endif
|
||||
mova [r0+r4], m2
|
||||
add r4, r2
|
||||
|
||||
Reference in New Issue
Block a user