| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -174,13 +174,13 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PSIGNW_MMX 2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PSIGNW 2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if cpuflag(ssse3) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    psignw     %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pxor       %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    psubw      %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PSIGNW_SSSE3 2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    psignw     %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro ABS1 2 | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -221,7 +221,7 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro ABSB 2 ; source mmreg, temp mmreg (unused for ssse3) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro ABSB 2 ; source mmreg, temp mmreg (unused for SSSE3) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if cpuflag(ssse3) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pabsb   %1, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -245,7 +245,7 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro ABSD2_MMX 4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro ABSD2 4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pxor    %3, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pxor    %4, %4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pcmpgtd %3, %1 | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -290,7 +290,7 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    palignr %1, %2, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%elif cpuflag(mmx) ; [dst,] src1, src2, imm, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else ; [dst,] src1, src2, imm, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    %define %%dst %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if %0==5 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%ifnidn %1, %2 | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -606,37 +606,47 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pminsw %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PMINSD_MMX 3 ; dst, src, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PMINSD 3 ; dst, src, tmp/unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if cpuflag(sse4) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pminsd    %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%elif cpuflag(sse2) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cvtdq2ps  %1, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    minps     %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cvtps2dq  %1, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mova      %3, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pcmpgtd   %3, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pxor      %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pand      %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pxor      %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PMAXSD_MMX 3 ; dst, src, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro PMAXSD 3 ; dst, src, tmp/unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if cpuflag(sse4) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pmaxsd    %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mova      %3, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pcmpgtd   %3, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pand      %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pandn     %3, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    por       %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CLIPD_MMX 3-4 ; src/dst, min, max, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    PMINSD_MMX %1, %3, %4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    PMAXSD_MMX %1, %2, %4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CLIPD_SSE2 3-4 ; src/dst, min (float), max (float), unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CLIPD 3-4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%if cpuflag(sse4);  src/dst, min, max, unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pminsd  %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pmaxsd  %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%elif cpuflag(sse2) ; src/dst, min (float), max (float), unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cvtdq2ps  %1, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    minps     %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    maxps     %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cvtps2dq  %1, %1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CLIPD_SSE41 3-4 ;  src/dst, min, max, unused | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pminsd  %1, %3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pmaxsd  %1, %2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%else               ; src/dst, min, max, tmp | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    PMINSD    %1, %3, %4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    PMAXSD    %1, %2, %4 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro VBROADCASTSS 2 ; dst xmm/ymm, src m32 | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |