This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] x86_64: memcpy/memmove family optimized with AVX512
- From: Andrew Senkevich <andrew dot n dot senkevich at gmail dot com>
- To: Paul Pluzhnikov <ppluzhnikov at google dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, Florian Weimer <fweimer at redhat dot com>, libc-alpha <libc-alpha at sourceware dot org>
- Date: Tue, 19 Jan 2016 14:52:15 +0300
- Subject: Re: [PATCH] x86_64: memcpy/memmove family optimized with AVX512
- Authentication-results: sourceware.org; auth=none
- References: <CAMXFM3uGLiFE+pKPzFgWP6Sx4C3w2Ktd4w3+35O0Bj=B1s0naA at mail dot gmail dot com> <CAMe9rOrTWce2vy0_OUWRH4FVRUSndpuSh2QpkmcMxgSBBEo0Fg at mail dot gmail dot com> <CAMXFM3tOe8UcRRoCQzLxHRt8o-azPQ=OJtHhFHGUDvsHAydoLQ at mail dot gmail dot com> <CAMe9rOreWU8eqsSaQShEY9+=Z6ySOTX+H8DxcYoFNY3i9tHrhg at mail dot gmail dot com> <CAMXFM3tH1FHdigHdYHVQiYafJMOf1=7Fxc+B2H1v11BNYxDgHw at mail dot gmail dot com> <CAMe9rOqeZtmz+LE5vbMSKJkid=7S4YmwR4=AzfuDFO07G6uF+w at mail dot gmail dot com> <CAMXFM3t9Y_YE_2zmPUr-agpMwhxk24OuU4QwY-zuWs-NKDEezA at mail dot gmail dot com> <569971BB dot 5050702 at redhat dot com> <CAMXFM3u969ef7GtbFGaozg+mGTLCiYLo2WYUEFRq4jmBWVPw3w at mail dot gmail dot com> <CALoOobPzf-z7kH4NYkjME=hd=sWPqBJ_gxZMPv72eAaa5SOYPg at mail dot gmail dot com> <CAMe9rOrkmX_9EDJcoJUQZ7R1vP-tcCWMEWUR3XB6yynKjnrckA at mail dot gmail dot com> <CALoOobNaJPPr_Bq+CSec1uB5kGZ282o6UgohT4D46sUc-CLBuA at mail dot gmail dot com>
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