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
INIT_MMX mmx
%define SPLATD SPLATD_MMX
%define CLIPD CLIPD_MMX
VECTOR_CLIP_INT32 0, 1, 0, 0
INIT_XMM sse2
%define SPLATD SPLATD_SSE2
VECTOR_CLIP_INT32 6, 1, 0, 0, _int
%define CLIPD CLIPD_SSE2
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
INIT_XMM sse
%define SPLATD SPLATD_SSE
INT32_TO_FLOAT_FMUL_SCALAR 5
INIT_XMM sse2
%define SPLATD SPLATD_SSE2
INT32_TO_FLOAT_FMUL_SCALAR 3
%undef SPLATD
;------------------------------------------------------------------------------

View File

@ -574,24 +574,14 @@
%endif
%endmacro
%macro SPLATD 2-3 0
%if mmsize == 16
pshufd %1, %2, (%3)*0x55
%else
pshufw %1, %2, (%3)*0x11 + ((%3)+1)*0x44
%endif
%endmacro
%macro SPLATD_MMX 1
%macro SPLATD 1
%if mmsize == 8
punpckldq %1, %1
%endmacro
%macro SPLATD_SSE 1
shufps %1, %1, 0
%endmacro
%macro SPLATD_SSE2 1
%elif cpuflag(sse2)
pshufd %1, %1, 0
%elif cpuflag(sse)
shufps %1, %1, 0
%endif
%endmacro
%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
punpcklwd m5, m3, m4
punpckhwd m3, m4
SPLATD m0, m0
SPLATD m0
pmaddwd m5, m0
pmaddwd m3, m0