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 dynamic-link/20139] Upper part of zmm is zeroed if Glibc is built with AS not supporting AVX512


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

--- Comment #6 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, master has been updated
       via  f43cb35c9b3c35addc6dc0f1427caf51786ca1d2 (commit)
      from  ee2196bb6766ca7e63a1ba22ebb7619a3266776a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

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

commit f43cb35c9b3c35addc6dc0f1427caf51786ca1d2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Jul 1 05:54:43 2016 -0700

    Require binutils 2.24 to build x86-64 glibc [BZ #20139]

    If assembler doesn't support AVX512DQ, _dl_runtime_resolve_avx is used
    to save the first 8 vector registers, which only saves the lower 256
    bits of vector register, for lazy binding.  When it is called on AVX512
    platform, the upper 256 bits of ZMM registers are clobbered.  Parameters
    passed in ZMM registers will be wrong when the function is called the
    first time.  This patch requires binutils 2.24, whose assembler can store
    and load ZMM registers, to build x86-64 glibc.  Since mathvec library
    needs assembler support for AVX512DQ,  we disable mathvec if assembler
    doesn't support AVX512DQ.

        [BZ #20139]
        * config.h.in (HAVE_AVX512_ASM_SUPPORT): Renamed to ...
        (HAVE_AVX512DQ_ASM_SUPPORT): This.
        * sysdeps/x86_64/configure.ac: Require assembler from binutils
        2.24 or above.
        (HAVE_AVX512_ASM_SUPPORT): Removed.
        (HAVE_AVX512DQ_ASM_SUPPORT): New.
        * sysdeps/x86_64/configure: Regenerated.
        * sysdeps/x86_64/dl-trampoline.S: Make HAVE_AVX512_ASM_SUPPORT
        check unconditional.
        * sysdeps/x86_64/multiarch/ifunc-impl-list.c: Likewise.
        * sysdeps/x86_64/multiarch/memcpy.S: Likewise.
        * sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
        * sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S:
        Likewise.
        * sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S:
        Likewise.
        * sysdeps/x86_64/multiarch/memmove.S: Likewise.
        * sysdeps/x86_64/multiarch/memmove_chk.S: Likewise.
        * sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
        * sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
        * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S:
        Likewise.
        * sysdeps/x86_64/multiarch/memset-avx512-unaligned-erms.S:
        Likewise.
        * sysdeps/x86_64/multiarch/memset.S: Likewise.
        * sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S: Check
        HAVE_AVX512DQ_ASM_SUPPORT instead of HAVE_AVX512_ASM_SUPPORT.
        * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_d_sincos8_core_avx512.:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_cosf16_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_sincosf16_core_avx51:
        Likewise.
        * sysdeps/x86_64/fpu/multiarch/svml_s_sinf16_core_avx512.S:
        Likewise.

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

Summary of changes:
 ChangeLog                                          |   54 ++++++++++++
 config.h.in                                        |    4 +-
 sysdeps/x86_64/configure                           |   89 +++++++++++++++++---
 sysdeps/x86_64/configure.ac                        |   25 ++++--
 sysdeps/x86_64/dl-trampoline.S                     |   37 ++++-----
 .../x86_64/fpu/multiarch/svml_d_cos8_core_avx512.S |    4 +-
 .../x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S |    4 +-
 .../x86_64/fpu/multiarch/svml_d_log8_core_avx512.S |    4 +-
 .../x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S |    4 +-
 .../x86_64/fpu/multiarch/svml_d_sin8_core_avx512.S |    4 +-
 .../fpu/multiarch/svml_d_sincos8_core_avx512.S     |    4 +-
 .../fpu/multiarch/svml_s_cosf16_core_avx512.S      |    4 +-
 .../fpu/multiarch/svml_s_expf16_core_avx512.S      |    4 +-
 .../fpu/multiarch/svml_s_logf16_core_avx512.S      |    4 +-
 .../fpu/multiarch/svml_s_powf16_core_avx512.S      |    4 +-
 .../fpu/multiarch/svml_s_sincosf16_core_avx512.S   |    4 +-
 .../fpu/multiarch/svml_s_sinf16_core_avx512.S      |    4 +-
 sysdeps/x86_64/multiarch/ifunc-impl-list.c         |   16 ----
 sysdeps/x86_64/multiarch/memcpy.S                  |    2 -
 sysdeps/x86_64/multiarch/memcpy_chk.S              |    2 -
 .../multiarch/memmove-avx512-no-vzeroupper.S       |    2 +-
 .../multiarch/memmove-avx512-unaligned-erms.S      |    2 +-
 sysdeps/x86_64/multiarch/memmove.S                 |    2 -
 sysdeps/x86_64/multiarch/memmove_chk.S             |    2 -
 sysdeps/x86_64/multiarch/mempcpy.S                 |    2 -
 sysdeps/x86_64/multiarch/mempcpy_chk.S             |    2 -
 .../x86_64/multiarch/memset-avx512-no-vzeroupper.S |    2 +-
 .../multiarch/memset-avx512-unaligned-erms.S       |    2 +-
 sysdeps/x86_64/multiarch/memset.S                  |    2 -
 sysdeps/x86_64/multiarch/memset_chk.S              |    2 -
 30 files changed, 192 insertions(+), 105 deletions(-)

-- 
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]