From patchwork Mon Jan 18 22:56:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Pluzhnikov X-Patchwork-Id: 10441 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: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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: References: <569971BB.5050702@redhat.com> From: Paul Pluzhnikov Date: Mon, 18 Jan 2016 14:56:55 -0800 Message-ID: Subject: Re: [PATCH] x86_64: memcpy/memmove family optimized with AVX512 To: "H.J. Lu" Cc: Andrew Senkevich , Florian Weimer , libc-alpha On Mon, Jan 18, 2016 at 2:29 PM, H.J. Lu wrote: > On Mon, Jan 18, 2016 at 10:50 AM, Paul Pluzhnikov > 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, --- 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.