This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug string/19776] Improve sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S


https://sourceware.org/bugzilla/show_bug.cgi?id=19776

--- Comment #12 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/erms/hybrid has been created
        at  cbb91f949f7e1560c299e7ad4727c6dfe976bb0c (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cbb91f949f7e1560c299e7ad4727c6dfe976bb0c

commit cbb91f949f7e1560c299e7ad4727c6dfe976bb0c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Mar 24 15:26:59 2016 -0700

    Add memcpy-avx512-unaligned-erms.S

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=85b5d5a77c7ecd88daffa902a0e6535222f373bc

commit 85b5d5a77c7ecd88daffa902a0e6535222f373bc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Mar 24 15:23:33 2016 -0700

    Extend it to VEC_SIZE == 64

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b12a3dc8134a8632e803213a169b4f0d9fa765a0

commit b12a3dc8134a8632e803213a169b4f0d9fa765a0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Mar 6 14:16:32 2016 -0800

    Add entry points for __mempcpy_sse2_unaligned and _chk functions

    Add entry points for __mempcpy_chk_sse2_unaligned,
    __mempcpy_sse2_unaligned and __memcpy_chk_sse2_unaligned.

    Add sse2_unaligned_erms versions of memcpy/mempcpy

        [BZ #19776]
        * sysdeps/x86_64/multiarch/ifunc-impl-list.c
        (__libc_ifunc_impl_list): Test __memcpy_chk_sse2_unaligned,
        __mempcpy_chk_sse2_unaligned and __mempcpy_sse2_unaligned.
        * sysdeps/x86_64/multiarch/ifunc-impl-list.c
        (__libc_ifunc_impl_list): Test __memcpy_chk_sse2_unaligned_erms,
        __memcpy_sse2_unaligned_erms, __mempcpy_chk_sse2_unaligned_erms
        and __mempcpy_sse2_unaligned_erms.
        * sysdeps/x86_64/sysdep.h (REP_MOVSB_THRESHOLD): New.

    Enable __mempcpy_sse2_unaligned

    Check Fast_Unaligned_Load for __mempcpy_sse2_unaligned.  The new
    selection order is:

    1. __mempcpy_avx_unaligned if AVX_Fast_Unaligned_Load bit is set.
    2. __mempcpy_sse2_unaligned if Fast_Unaligned_Load bit is set.
    3. __mempcpy_sse2 if SSSE3 isn't available.
    4. __mempcpy_ssse3_back if Fast_Copy_Backward bit it set.
    5. __mempcpy_ssse3

        [BZ #19776]
        * sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy): Check
        Fast_Unaligned_Load to enable __mempcpy_sse2_unaligned.

    Enable __mempcpy_chk_sse2_unaligned

    Check Fast_Unaligned_Load for __mempcpy_chk_sse2_unaligned. The new
    selection order is:

    1. __mempcpy_chk_avx_unaligned if AVX_Fast_Unaligned_Load bit is set.
    2. __mempcpy_chk_sse2_unaligned if Fast_Unaligned_Load bit is set.
    3. __mempcpy_chk_sse2 if SSSE3 isn't available.
    4. __mempcpy_chk_ssse3_back if Fast_Copy_Backward bit it set.
    5. __mempcpy_chk_ssse3

        [BZ #19776]
        * sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Check
        Fast_Unaligned_Load to enable __mempcpy_chk_sse2_unaligned.

    Enable __memcpy_chk_sse2_unaligned

    Check Fast_Unaligned_Load for __memcpy_chk_sse2_unaligned. The new
    selection order is:

    1. __memcpy_chk_avx_unaligned if AVX_Fast_Unaligned_Load bit is set.
    2. __memcpy_chk_sse2_unaligned if Fast_Unaligned_Load bit is set.
    3. __memcpy_chk_sse2 if SSSE3 isn't available.
    4. __memcpy_chk_ssse3_back if Fast_Copy_Backward bit it set.
    5. __memcpy_chk_ssse3

        [BZ #19776]
        * sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Check
        Fast_Unaligned_Load to enable __mempcpy_chk_sse2_unaligned.

    Use Hybrid_ERMS in memcpy.S

    Use Hybrid_ERMS in mempcpy.S

    Add memcpy-sse2-unaligned-erms.S

    Add initial memcpy-vec-unaligned-erms.S

    Add memcpy-avx-unaligned-erms.S

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=649521e48efafd5fccac8f405c2166749b6d59f4

commit 649521e48efafd5fccac8f405c2166749b6d59f4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 18 12:36:03 2016 -0700

    Add Hybrid_ERMS and use it in memset.S

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8c36a7002d4a2956e7b3701e4094382148b22eed

commit 8c36a7002d4a2956e7b3701e4094382148b22eed
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 18 10:34:07 2016 -0700

    Add __memset_avx2_erms and __memset_chk_avx2_erms

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cb894908a84c04d7fe3fbf164613fb5b5bac0737

commit cb894908a84c04d7fe3fbf164613fb5b5bac0737
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 18 10:07:48 2016 -0700

    Remove mempcpy-*.S

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10e38ad556275d8d8a4bb2ea1423f1e160f259ee

commit 10e38ad556275d8d8a4bb2ea1423f1e160f259ee
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Mar 6 13:37:31 2016 -0800

    Merge memcpy with mempcpy

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=0c8870d243dd0139ef9954cad6e399327c2406e1

commit 0c8870d243dd0139ef9954cad6e399327c2406e1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 18 09:22:56 2016 -0700

    Add __memset_sse2_erms and __memset_chk_sse2_erms

        * sysdeps/x86_64/memset.S (__memset_chk_sse2_erms): New
        function.
        (__memset_sse2_erms): Likewise.
        * sysdeps/x86_64/multiarch/ifunc-impl-list.c
        (__libc_ifunc_impl_list): Test __memset_chk_sse2_erms and
        __memset_sse2_erms.
        * sysdeps/x86_64/sysdep.h (REP_STOSB_THRESHOLD): New.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=84e04147d1e70e8ba00c8f46923228cebbf0a64b

commit 84e04147d1e70e8ba00c8f46923228cebbf0a64b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Apr 11 08:51:16 2014 -0700

    Test 32-bit ERMS memcpy/memset

        * sysdeps/i386/i686/multiarch/ifunc-impl-list.c
        (__libc_ifunc_impl_list): Add __bcopy_erms, __bzero_erms,
        __memmove_chk_erms, __memmove_erms, __memset_chk_erms,
        __memset_erms, __memcpy_chk_erms, __memcpy_erms,
        __mempcpy_chk_erms and __mempcpy_erms.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f77aa0315f706aff7516af601a04568390422dab

commit f77aa0315f706aff7516af601a04568390422dab
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Apr 11 08:25:17 2014 -0700

    Test 64-bit ERMS memcpy/memset

        * sysdeps/x86_64/multiarch/ifunc-impl-list.c
        (__libc_ifunc_impl_list): Add __memmove_chk_erms,
        __memmove_erms, __memset_erms, __memset_chk_erms,
        __memcpy_chk_erms, __memcpy_erms, __mempcpy_chk_erms and
        __mempcpy_erms.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eade49cad4007c094dacce2967a7f13166a46dae

commit eade49cad4007c094dacce2967a7f13166a46dae
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Sep 21 15:21:28 2011 -0700

    Add 32it ERMS memcpy/memset

        * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
        bcopy-erms, memcpy-erms, memmove-erms, mempcpy-erms, bzero-erms
        and memset-erms.
        * sysdeps/i386/i686/multiarch/bcopy-erms.S: New file.
        * sysdeps/i386/i686/multiarch/bzero-erms.S: Likewise.
        * sysdeps/i386/i686/multiarch/memcpy-erms.S: Likewise.
        * sysdeps/i386/i686/multiarch/memmove-erms.S: Likewise.
        * sysdeps/i386/i686/multiarch/mempcpy-erms.S: Likewise.
        * sysdeps/i386/i686/multiarch/memset-erms.S: Likewise.
        * sysdeps/i386/i686/multiarch/ifunc-defines.sym: Add
        COMMON_CPUID_INDEX_7.
        * sysdeps/i386/i686/multiarch/bcopy.S: Enable ERMS optimization
        for Fast_ERMS.
        * sysdeps/i386/i686/multiarch/bzero.S: Likewise.
        * sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
        * sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
        * sysdeps/i386/i686/multiarch/memmove.S: Likewise.
        * sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
        * sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
        * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
        * sysdeps/i386/i686/multiarch/memset.S: Likewise.
        * sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=312879aedef40f9e1eb30c517d516c0a29cd030c

commit 312879aedef40f9e1eb30c517d516c0a29cd030c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 15 16:16:10 2011 -0700

    Add 64-bit ERMS memcpy and memset

        * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
        memcpy-erms, mempcpy-erms, memmove-erms and memset-erms.
        * sysdeps/x86_64/multiarch/memcpy-erms.S: New.
        * sysdeps/x86_64/multiarch/memmove-erms.S: Likewise.
        * sysdeps/x86_64/multiarch/mempcpy-erms.S: Likewise.
        * sysdeps/x86_64/multiarch/memset-erms.S: Likewise.
        * sysdeps/x86_64/multiarch/memcpy.S: Enable ERMS optimization
        for Fast_ERMS.
        * sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
        * sysdeps/x86_64/multiarch/memmove.c: Likewise.
        * sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
        * sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
        * sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
        * sysdeps/x86_64/multiarch/memset.S: Likewise.
        * sysdeps/x86_64/multiarch/memset_chk.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=487dc028667e43ed55f407fda3c07fc31ecd1554

commit 487dc028667e43ed55f407fda3c07fc31ecd1554
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Sep 15 15:47:01 2011 -0700

    Initial ERMS support

        * sysdeps/x86/cpu-features.h (bit_arch_Fast_ERMS): New.
        (bit_cpu_ERMS): Likewise.
        (index_cpu_ERMS): Likewise.
        (index_arch_Fast_ERMS): Likewise.
        (reg_ERMS): Likewise.

-----------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]