x86: PALIGNR: port to cpuflags

This commit is contained in:
Diego Biurrun 2012-07-08 01:30:30 +02:00
parent 4d1f69f244
commit 4b60fac419
6 changed files with 9 additions and 64 deletions

View File

@ -1063,10 +1063,8 @@ cglobal pred8x8l_top_dc_8, 4,4
%endmacro
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
PRED8x8L_TOP_DC
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_TOP_DC
;-----------------------------------------------------------------------------
@ -1168,10 +1166,8 @@ cglobal pred8x8l_dc_8, 4,5
%endmacro
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
PRED8x8L_DC
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_DC
;-----------------------------------------------------------------------------
@ -1241,10 +1237,8 @@ cglobal pred8x8l_horizontal_8, 4,4
%endmacro
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
PRED8x8L_HORIZONTAL
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_HORIZONTAL
;-----------------------------------------------------------------------------
@ -1293,10 +1287,8 @@ cglobal pred8x8l_vertical_8, 4,4
%endmacro
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
PRED8x8L_VERTICAL
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_VERTICAL
;-----------------------------------------------------------------------------
@ -1304,7 +1296,6 @@ PRED8x8L_VERTICAL
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred8x8l_down_left_8, 4,5
sub r0, r3
movq mm0, [r0-8]
@ -1496,10 +1487,8 @@ INIT_XMM cpuname
%endmacro
INIT_MMX sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_DOWN_LEFT
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_DOWN_LEFT
;-----------------------------------------------------------------------------
@ -1507,7 +1496,6 @@ PRED8x8L_DOWN_LEFT
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred8x8l_down_right_8, 4,5
sub r0, r3
lea r4, [r0+r3*2]
@ -1750,10 +1738,8 @@ INIT_XMM cpuname
%endmacro
INIT_MMX sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_DOWN_RIGHT
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_DOWN_RIGHT
;-----------------------------------------------------------------------------
@ -1761,7 +1747,6 @@ PRED8x8L_DOWN_RIGHT
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred8x8l_vertical_right_8, 4,5
sub r0, r3
lea r4, [r0+r3*2]
@ -1980,10 +1965,8 @@ INIT_XMM cpuname
%endmacro
INIT_MMX sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_VERTICAL_RIGHT
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_VERTICAL_RIGHT
;-----------------------------------------------------------------------------
@ -2071,10 +2054,8 @@ INIT_XMM cpuname
%endmacro
INIT_MMX sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_VERTICAL_LEFT
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_VERTICAL_LEFT
;-----------------------------------------------------------------------------
@ -2160,10 +2141,8 @@ cglobal pred8x8l_horizontal_up_8, 4,4
%endmacro
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
PRED8x8L_HORIZONTAL_UP
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_UP
;-----------------------------------------------------------------------------
@ -2171,7 +2150,6 @@ PRED8x8L_HORIZONTAL_UP
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred8x8l_horizontal_down_8, 4,5
sub r0, r3
lea r4, [r0+r3*2]
@ -2411,10 +2389,8 @@ INIT_XMM cpuname
%endmacro
INIT_MMX sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_HORIZONTAL_DOWN
INIT_MMX ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_DOWN
;-----------------------------------------------------------------------------
@ -2637,7 +2613,6 @@ cglobal pred4x4_horizontal_up_8, 3,3
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred4x4_horizontal_down_8, 3,3
sub r0, r2
lea r1, [r0+r2*2]
@ -2673,7 +2648,6 @@ cglobal pred4x4_horizontal_down_8, 3,3
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred4x4_vertical_right_8, 3,3
sub r0, r2
lea r1, [r0+r2*2]
@ -2704,7 +2678,6 @@ cglobal pred4x4_vertical_right_8, 3,3
;-----------------------------------------------------------------------------
INIT_MMX mmxext
%define PALIGNR PALIGNR_MMX
cglobal pred4x4_down_right_8, 3,3
sub r0, r2
lea r1, [r0+r2*2]

View File

@ -79,10 +79,8 @@ cglobal pred4x4_down_right_10, 3, 3
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED4x4_DR
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED4x4_DR
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -120,10 +118,8 @@ cglobal pred4x4_vertical_right_10, 3, 3, 6
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED4x4_VR
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED4x4_VR
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -164,10 +160,8 @@ cglobal pred4x4_horizontal_down_10, 3, 3
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED4x4_HD
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED4x4_HD
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -726,10 +720,8 @@ cglobal pred8x8l_horizontal_10, 4, 4, 5
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_HORIZONTAL
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_HORIZONTAL
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -796,10 +788,8 @@ cglobal pred8x8l_down_left_10, 4, 4, 7
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_DOWN_LEFT
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_DOWN_LEFT
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -872,10 +862,8 @@ cglobal pred8x8l_down_right_10, 4, 5, 8
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_DOWN_RIGHT
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_DOWN_RIGHT
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -944,10 +932,8 @@ cglobal pred8x8l_vertical_right_10, 4, 5, 7
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_VERTICAL_RIGHT
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_VERTICAL_RIGHT
%if HAVE_AVX_EXTERNAL
INIT_XMM avx
@ -1007,10 +993,8 @@ cglobal pred8x8l_horizontal_up_10, 4, 4, 6
%endmacro
INIT_XMM sse2
%define PALIGNR PALIGNR_MMX
PRED8x8L_HORIZONTAL_UP
INIT_XMM ssse3
%define PALIGNR PALIGNR_SSSE3
PRED8x8L_HORIZONTAL_UP
%if HAVE_AVX_EXTERNAL
INIT_XMM avx

View File

@ -225,25 +225,21 @@ MC00 avg
;-----------------------------------------------------------------------------
%macro MC_CACHE 1
%define OP_MOV mova
%define PALIGNR PALIGNR_MMX
INIT_MMX mmxext
%1 put, 4
INIT_XMM sse2, cache64
%1 put, 8
INIT_XMM ssse3, cache64
%define PALIGNR PALIGNR_SSSE3
%1 put, 8
INIT_XMM sse2
%1 put, 8, 0
%define OP_MOV AVG_MOV
%define PALIGNR PALIGNR_MMX
INIT_MMX mmxext
%1 avg, 4
INIT_XMM sse2, cache64
%1 avg, 8
INIT_XMM ssse3, cache64
%define PALIGNR PALIGNR_SSSE3
%1 avg, 8
INIT_XMM sse2
%1 avg, 8, 0

View File

@ -919,10 +919,8 @@ cglobal conv_s16_to_s16p_6ch, 2,7,5, dst, src, dst1, dst2, dst3, dst4, dst5
REP_RET
%endmacro
%define PALIGNR PALIGNR_MMX
INIT_XMM sse2
CONV_S16_TO_S16P_6CH
%define PALIGNR PALIGNR_SSSE3
INIT_XMM ssse3
CONV_S16_TO_S16P_6CH
%if HAVE_AVX_EXTERNAL
@ -1038,10 +1036,8 @@ cglobal conv_s16_to_fltp_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5
REP_RET
%endmacro
%define PALIGNR PALIGNR_MMX
INIT_XMM sse2
CONV_S16_TO_FLTP_6CH
%define PALIGNR PALIGNR_SSSE3
INIT_XMM ssse3
CONV_S16_TO_FLTP_6CH
INIT_XMM sse4
@ -1160,10 +1156,8 @@ cglobal conv_flt_to_s16p_6ch, 2,7,7, dst, src, dst1, dst2, dst3, dst4, dst5
REP_RET
%endmacro
%define PALIGNR PALIGNR_MMX
INIT_XMM sse2
CONV_FLT_TO_S16P_6CH
%define PALIGNR PALIGNR_SSSE3
INIT_XMM ssse3
CONV_FLT_TO_S16P_6CH
%if HAVE_AVX_EXTERNAL

View File

@ -280,7 +280,14 @@
%endif
%endmacro
%macro PALIGNR_MMX 4-5 ; [dst,] src1, src2, imm, tmp
%macro PALIGNR 4-5
%if cpuflag(ssse3)
%if %0==5
palignr %1, %2, %3, %4
%else
palignr %1, %2, %3
%endif
%elif cpuflag(mmx) ; [dst,] src1, src2, imm, tmp
%define %%dst %1
%if %0==5
%ifnidn %1, %2
@ -299,13 +306,6 @@
psrldq %4, %3
%endif
por %%dst, %4
%endmacro
%macro PALIGNR_SSSE3 4-5
%if %0==5
palignr %1, %2, %3, %4
%else
palignr %1, %2, %3
%endif
%endmacro

View File

@ -246,7 +246,6 @@ cglobal yuv2planeX_%1, %3, 8, %2, filter, fltsize, src, dst, w, dither, offset
%endif ; %1 == 8/9/10/16
%endmacro
%define PALIGNR PALIGNR_MMX
%if ARCH_X86_32
INIT_MMX mmx2
yuv2planeX_fn 8, 0, 7
@ -259,7 +258,6 @@ yuv2planeX_fn 8, 10, 7
yuv2planeX_fn 9, 7, 5
yuv2planeX_fn 10, 7, 5
%define PALIGNR PALIGNR_SSSE3
INIT_XMM sse4
yuv2planeX_fn 8, 10, 7
yuv2planeX_fn 9, 7, 5
@ -344,7 +342,7 @@ cglobal yuv2plane1_%1, %3, %3, %2, src, dst, w, dither, offset
%if mmsize == 16
punpcklqdq m3, m3
%endif ; mmsize == 16
PALIGNR_MMX m3, m3, 3, m2
PALIGNR m3, m3, 3, m2
.no_rot:
%if mmsize == 8
mova m2, m3