[x265] [PATCH] asm: assembly code for pixel_sad_16x12

Steve Borho steve at borho.org
Mon Oct 28 19:43:01 CET 2013


On Mon, Oct 28, 2013 at 7:19 AM, <dnyaneshwar at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
> # Date 1382962711 -19800
> #      Mon Oct 28 17:48:31 2013 +0530
> # Node ID fbf591d02665dcbe3d3029cc68d94ca34fd8dbab
> # Parent  a44e10ccd754dcd8a5c24bc078c1912fa80782a0
> asm: assembly code for pixel_sad_16x12
>

queued for default,

If you can get ASM coverage for 4x16 and 8x32, we can remove a number of
intrinsic functions


> diff -r a44e10ccd754 -r fbf591d02665 source/common/x86/asm-primitives.cpp
> --- a/source/common/x86/asm-primitives.cpp      Mon Oct 28 16:16:08 2013
> +0530
> +++ b/source/common/x86/asm-primitives.cpp      Mon Oct 28 17:48:31 2013
> +0530
> @@ -237,6 +237,8 @@
>
>          p.sad[LUMA_16x32]  = x265_pixel_sad_16x32_sse2;
>          p.sad[LUMA_16x64]  = x265_pixel_sad_16x64_sse2;
> +        p.sad[LUMA_16x12]  = x265_pixel_sad_16x12_sse2;
> +
>
>          ASSGN_SSE(sse2);
>          INIT2(sad, _sse2);
> diff -r a44e10ccd754 -r fbf591d02665 source/common/x86/sad-a.asm
> --- a/source/common/x86/sad-a.asm       Mon Oct 28 16:16:08 2013 +0530
> +++ b/source/common/x86/sad-a.asm       Mon Oct 28 17:48:31 2013 +0530
> @@ -295,6 +295,21 @@
>      movd   eax, m0
>      RET
>
>
> +;-----------------------------------------------------------------------------
> +; int pixel_sad_16x12( uint8_t *, intptr_t, uint8_t *, intptr_t )
>
> +;-----------------------------------------------------------------------------
> +cglobal pixel_sad_16x12, 4,4,3
> +    pxor m0, m0
> +
> +    PROCESS_SAD_4x16
>

this is roughly the same perf as the intrinsic function, but it seems like
it could be done more efficiently.  But since this is a rarely used block
size it has lower priority than getting general coverage for 8,16, 32, and
64


> +    PROCESS_SAD_4x16
> +    PROCESS_SAD_4x16
> +
> +    movhlps m1, m0
> +    paddd   m0, m1
> +    movd   eax, m0
> +    RET
> +
>  %endmacro
>
>  INIT_XMM sse2
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Steve Borho
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131028/f197085d/attachment.html>


More information about the x265-devel mailing list