Message ID | CALoOobNaJPPr_Bq+CSec1uB5kGZ282o6UgohT4D46sUc-CLBuA@mail.gmail.com |
---|---|
State | New, archived |
Headers |
Received: (qmail 7941 invoked by alias); 18 Jan 2016 22:57:31 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 7891 invoked by uid 89); 18 Jan 2016 22:57:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=SHARED, family X-HELO: mail-wm0-f54.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=cnfFbgNEVaBD04odOMJWpvCxM2/HWvTS0yr+EBIsPsk=; b=UEEGBZlZdkwxgHGNMZjZMqOPfphxOgmqukSPygYCC+1OOswd0yPFxBQoiQY1Fc58w1 39xCWuuGKeEXufudz/iqjWXceFrdQx55fFwulOdJaUs02EqEDRzojRbAy5AavXlNgOmi VLh+vMMhjHyIU2ftd72z2QjeFuQDqizI40LXCF/miwIPJ2k9NzAmpV7mO7SWRLOCM3s2 GThDQUC6RV/CGH6w/lSdrNh+1TIhxmECqBYDOBht+1Zgh5M/dh6VTgWwrZFD0cfMAK+u Ffgo28Rd3IaTcof6iKPKLLe7IBU5iYig7Lt1i9ZFiYl6nLFJ2AtRz0kT/EwJeOrHaoJ4 ZFPQ== X-Gm-Message-State: AG10YOQ2+xekXa9zVJiCOXzDyfZOPtPvcZPQAF+BkFS2pmJZMSdI8CCnFRa8I0Q82P7gWbfkg0zTIqinADrTks/v X-Received: by 10.28.141.10 with SMTP id p10mr15072561wmd.83.1453157845753; Mon, 18 Jan 2016 14:57:25 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <CAMe9rOrkmX_9EDJcoJUQZ7R1vP-tcCWMEWUR3XB6yynKjnrckA@mail.gmail.com> References: <CAMXFM3uGLiFE+pKPzFgWP6Sx4C3w2Ktd4w3+35O0Bj=B1s0naA@mail.gmail.com> <CAMe9rOrTWce2vy0_OUWRH4FVRUSndpuSh2QpkmcMxgSBBEo0Fg@mail.gmail.com> <CAMXFM3tOe8UcRRoCQzLxHRt8o-azPQ=OJtHhFHGUDvsHAydoLQ@mail.gmail.com> <CAMe9rOreWU8eqsSaQShEY9+=Z6ySOTX+H8DxcYoFNY3i9tHrhg@mail.gmail.com> <CAMXFM3tH1FHdigHdYHVQiYafJMOf1=7Fxc+B2H1v11BNYxDgHw@mail.gmail.com> <CAMe9rOqeZtmz+LE5vbMSKJkid=7S4YmwR4=AzfuDFO07G6uF+w@mail.gmail.com> <CAMXFM3t9Y_YE_2zmPUr-agpMwhxk24OuU4QwY-zuWs-NKDEezA@mail.gmail.com> <569971BB.5050702@redhat.com> <CAMXFM3u969ef7GtbFGaozg+mGTLCiYLo2WYUEFRq4jmBWVPw3w@mail.gmail.com> <CALoOobPzf-z7kH4NYkjME=hd=sWPqBJ_gxZMPv72eAaa5SOYPg@mail.gmail.com> <CAMe9rOrkmX_9EDJcoJUQZ7R1vP-tcCWMEWUR3XB6yynKjnrckA@mail.gmail.com> From: Paul Pluzhnikov <ppluzhnikov@google.com> Date: Mon, 18 Jan 2016 14:56:55 -0800 Message-ID: <CALoOobNaJPPr_Bq+CSec1uB5kGZ282o6UgohT4D46sUc-CLBuA@mail.gmail.com> Subject: Re: [PATCH] x86_64: memcpy/memmove family optimized with AVX512 To: "H.J. Lu" <hjl.tools@gmail.com> Cc: Andrew Senkevich <andrew.n.senkevich@gmail.com>, Florian Weimer <fweimer@redhat.com>, libc-alpha <libc-alpha@sourceware.org> Content-Type: multipart/mixed; boundary=001a1146ffee333e910529a3ad23 |
Commit Message
Paul Pluzhnikov
Jan. 18, 2016, 10:56 p.m. UTC
On Mon, Jan 18, 2016 at 2:29 PM, H.J. Lu <hjl.tools@gmail.com> wrote: > On Mon, Jan 18, 2016 at 10:50 AM, Paul Pluzhnikov > <ppluzhnikov@google.com> wrote: >> This patch appears to break my build: >> > Please try this. @@ -309,8 +317,10 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/x86_64/multiarch/mempcpy.S. */ IFUNC_IMPL (i, name, mempcpy, IFUNC_IMPL_ADD (array, i, mempcpy, +# ifdef HAVE_AVX512_ASM_SUPPORT HAS_ARCH_FEATURE (AVX512F_Usable), __mempcpy_avx512_no_vzeroupper) +# endif IFUNC_IMPL_ADD (array, i, mempcpy, HAS_ARCH_FEATURE (AVX_Usable), __mempcpy_avx_unaligned) Likewise. You also missed __memmove_avx512_no_vzeroupper. Attached patch makes it build and pass tests for me. Thanks,
Comments
2016-01-19 1:56 GMT+03:00 Paul Pluzhnikov <ppluzhnikov@google.com>: > On Mon, Jan 18, 2016 at 2:29 PM, H.J. Lu <hjl.tools@gmail.com> wrote: >> On Mon, Jan 18, 2016 at 10:50 AM, Paul Pluzhnikov >> <ppluzhnikov@google.com> wrote: >>> This patch appears to break my build: >>> > >> Please try this. > > --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c > +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c > @@ -49,8 +49,10 @@ __libc_ifunc_impl_list (const char *name, struct > libc_ifunc_impl *array, > /* Support sysdeps/x86_64/multiarch/memmove_chk.c. */ > IFUNC_IMPL (i, name, __memmove_chk, > IFUNC_IMPL_ADD (array, i, __memmove_chk, > +#ifdef HAVE_AVX512_ASM_SUPPORT > HAS_ARCH_FEATURE (AVX512F_Usable), > __memmove_chk_avx512_no_vzeroupper) > +#endif > > The #ifdef should be moved one line up, I think. > > @@ -309,8 +317,10 @@ __libc_ifunc_impl_list (const char *name, struct > libc_ifunc_impl *array, > /* Support sysdeps/x86_64/multiarch/mempcpy.S. */ > IFUNC_IMPL (i, name, mempcpy, > IFUNC_IMPL_ADD (array, i, mempcpy, > +# ifdef HAVE_AVX512_ASM_SUPPORT > HAS_ARCH_FEATURE (AVX512F_Usable), > __mempcpy_avx512_no_vzeroupper) > +# endif > IFUNC_IMPL_ADD (array, i, mempcpy, > HAS_ARCH_FEATURE (AVX_Usable), > __mempcpy_avx_unaligned) > > Likewise. > > You also missed __memmove_avx512_no_vzeroupper. > > Attached patch makes it build and pass tests for me. Yes, it was done for memset but forgotten here. Thanks, fixed. -- WBR, Andrew
--- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c @@ -49,8 +49,10 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, /* Support sysdeps/x86_64/multiarch/memmove_chk.c. */ IFUNC_IMPL (i, name, __memmove_chk, IFUNC_IMPL_ADD (array, i, __memmove_chk, +#ifdef HAVE_AVX512_ASM_SUPPORT HAS_ARCH_FEATURE (AVX512F_Usable), __memmove_chk_avx512_no_vzeroupper) +#endif The #ifdef should be moved one line up, I think.