x86: SPLATD: port to cpuflags

This commit is contained in:
Diego Biurrun 2012-07-15 18:33:59 +02:00
parent 1c5805521c
commit 87af05c575
4 changed files with 7 additions and 22 deletions

View File

@ -1124,11 +1124,9 @@ cglobal vector_clip_int32%5, 5,5,%1, dst, src, min, max, len
%endmacro %endmacro
INIT_MMX mmx INIT_MMX mmx
%define SPLATD SPLATD_MMX
%define CLIPD CLIPD_MMX %define CLIPD CLIPD_MMX
VECTOR_CLIP_INT32 0, 1, 0, 0 VECTOR_CLIP_INT32 0, 1, 0, 0
INIT_XMM sse2 INIT_XMM sse2
%define SPLATD SPLATD_SSE2
VECTOR_CLIP_INT32 6, 1, 0, 0, _int VECTOR_CLIP_INT32 6, 1, 0, 0, _int
%define CLIPD CLIPD_SSE2 %define CLIPD CLIPD_SSE2
VECTOR_CLIP_INT32 6, 2, 0, 1 VECTOR_CLIP_INT32 6, 2, 0, 1

View File

@ -72,12 +72,9 @@ cglobal int32_to_float_fmul_scalar, 4, 4, %1, dst, src, mul, len
%endmacro %endmacro
INIT_XMM sse INIT_XMM sse
%define SPLATD SPLATD_SSE
INT32_TO_FLOAT_FMUL_SCALAR 5 INT32_TO_FLOAT_FMUL_SCALAR 5
INIT_XMM sse2 INIT_XMM sse2
%define SPLATD SPLATD_SSE2
INT32_TO_FLOAT_FMUL_SCALAR 3 INT32_TO_FLOAT_FMUL_SCALAR 3
%undef SPLATD
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------

View File

@ -574,24 +574,14 @@
%endif %endif
%endmacro %endmacro
%macro SPLATD 2-3 0 %macro SPLATD 1
%if mmsize == 16 %if mmsize == 8
pshufd %1, %2, (%3)*0x55
%else
pshufw %1, %2, (%3)*0x11 + ((%3)+1)*0x44
%endif
%endmacro
%macro SPLATD_MMX 1
punpckldq %1, %1 punpckldq %1, %1
%endmacro %elif cpuflag(sse2)
%macro SPLATD_SSE 1
shufps %1, %1, 0
%endmacro
%macro SPLATD_SSE2 1
pshufd %1, %1, 0 pshufd %1, %1, 0
%elif cpuflag(sse)
shufps %1, %1, 0
%endif
%endmacro %endmacro
%macro CLIPW 3 ;(dst, min, max) %macro CLIPW 3 ;(dst, min, max)

View File

@ -187,7 +187,7 @@ cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset
%else ; %1 == 10/9/8 %else ; %1 == 10/9/8
punpcklwd m5, m3, m4 punpcklwd m5, m3, m4
punpckhwd m3, m4 punpckhwd m3, m4
SPLATD m0, m0 SPLATD m0
pmaddwd m5, m0 pmaddwd m5, m0
pmaddwd m3, m0 pmaddwd m3, m0