From patchwork Wed Mar 13 14:03:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 160230 Delivered-To: patch@linaro.org Received: by 2002:a02:5cc1:0:0:0:0:0 with SMTP id w62csp14357385jad; Wed, 13 Mar 2019 07:04:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqy4mjbHYoqRWpJrjRNp8AdRJMplE79ySNErlj9AeUF2O7oSAvkAXIHf83wL+23gXHIOaZPO X-Received: by 2002:a65:64cc:: with SMTP id t12mr31868514pgv.438.1552485866093; Wed, 13 Mar 2019 07:04:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552485866; cv=none; d=google.com; s=arc-20160816; b=gOk8k5Tj2Gvu7CSSbcyOfgk+AzKGXVzWTNWdhaf7680D0IYQF5gOc+2E+m/fLjLZ9C g9c4zNiI7gls3jBqvpcfiRcnPl6ul3t2k2JUGO4hrUfSHqrQLvB+0rvyd0vFGtqm8lt0 YEKuizDcl/W4Jejs1Qd4xcNrUqCTCaMJA/GBNSPIYdQsgESekYDEVVCfmerEr9+lVlIl nsHPB/e7cv0PeTY6/j4pu+IRsou0VSwKcXyrqSvq2DcwWZvhdOO2PKytwYZMOTVg3D09 L751/9Fvrflhifr1gFY6Gb6sp+Qm18awAfHKhakbOtexvEUoe95VnOxBovX/sDx4ZEI2 OmGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:delivered-to:sender:list-help:list-post:list-archive :list-subscribe:list-unsubscribe:list-id:precedence:mailing-list :dkim-signature:domainkey-signature; bh=0GQBLrjZqD6EAJOBcu5wZERYjF/L4WWAgzpY+5CgR0A=; b=isioj7+QedwVrYYUZnsgfQZSyZ6GjkjiElW6sL+nFicJxjD12PJGrc/GHf7Fl5Fi1Q hu+Hw4h0tjvYhyPShtIGsDUMF/AEqVOlhlauk6tWEk/SpAesVDEsUyVG/jG7UoNXc10K exAw5HdLT4X3q/ZOTlnJ37pfbSLIxR2i5D5AYaswoqZTNZum1275IFJ0v9+G7eNwEZ6E XmnEXk/+kGcpT+W0Q5LW5CMR0OxQXZEWZUYDtDS2lWIQX55QwJOEabc34KJ5C8t+fD0y 6X8x/Q9kfDn6wRvH5ya6uyjHOkohziBjsui1NL8bZ3p63O+apAvOvvGhCTeML9jVUHnV gX+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=VJehoamP; dkim=pass header.i=@linaro.org header.s=google header.b=ebjLQsCj; spf=pass (google.com: domain of libc-alpha-return-100603-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="libc-alpha-return-100603-patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id q13si10648302pll.175.2019.03.13.07.04.25 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Mar 2019 07:04:26 -0700 (PDT) Received-SPF: pass (google.com: domain of libc-alpha-return-100603-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=VJehoamP; dkim=pass header.i=@linaro.org header.s=google header.b=ebjLQsCj; spf=pass (google.com: domain of libc-alpha-return-100603-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom="libc-alpha-return-100603-patch=linaro.org@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; q=dns; s=default; b=FCkquc2BoZzSotrvjXrZSQHQJttf73Z ATQ936amb3tYQY4RyKmQKoklPLKKiTZUyhOdTZ7asGwBYVrBcD+MA4d/T/xmZy5Y av0jCHYGctMkSfiBpwAlzM0odrBDy+7aAZO6ainRPTi3zOQcYm/P/8/f3ywx4fLa Py229mM18e5I= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:cc:subject:date:message-id:in-reply-to :references; s=default; bh=KifjerLg2pevPc8hvcqHcdeUcNE=; b=VJeho amPhvcT9Cw34/GdJ61pEnIPBUvycXeBqh0+2FjcprOdr6ygtSTMYLExcDu9NeKUc Dm1SCasVsqrezjpk1IwvKJ97lfDCLaXZ212pKdzj84Nwzk1Hw8mHISjN1tRt0Ya/ LjyBlSQpgcA34m72xEbGJDjTplkPxaE3SMn0Bk= Received: (qmail 52388 invoked by alias); 13 Mar 2019 14:03:38 -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 52304 invoked by uid 89); 13 Mar 2019 14:03:38 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=1510 X-HELO: mail-vs1-f68.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0GQBLrjZqD6EAJOBcu5wZERYjF/L4WWAgzpY+5CgR0A=; b=ebjLQsCjyK9W+HjmnmEot0OUfbKGg321DZPZLcKrPvtpWT4dwqbS+YtT645bs7YaaN QhpZuvMduHLVRnOkVqCpAhUNCh6c2SFCjGTVBwWLbBgBIAuOEnXsVOsSuqvNpCIPF4q1 zF2jgJpQShAj+5ZF4cXschSv8smf3zIeiKbXVhZMG3QORrvsXtewFPtYwNj50NToi1Hd NIjECvM8UazVEd6Y9EsPAwrzwiFxri97b6HYNXm9uqQkkN/LwVPrcTy0UH1LUgwyfvzK TjqSPuZ80CvHaBg6JPto0zPEnwcXNPW+TmQVXcDhBmXsJvTRqJPGcrGETIr7iHuJZk3w c6vA== Return-Path: From: Adhemerval Zanella To: libc-alpha@sourceware.org Cc: "Gabriel F . T . Gomes" Subject: [PATCH v2 6/6] powerpc: Use generic wcscpy optimization Date: Wed, 13 Mar 2019 11:03:17 -0300 Message-Id: <20190313140317.8894-6-adhemerval.zanella@linaro.org> In-Reply-To: <20190313140317.8894-1-adhemerval.zanella@linaro.org> References: <20190313140317.8894-1-adhemerval.zanella@linaro.org> This patch removes the power6 wcsrchr optimization and use generic implementation instead. Currently both power6 and power7 ifunc variant resulting binary are essentially the same and the generic implementation with unrolling loop set to 8 also results in similar performance. Checked on powerpc64-linux-gnu. * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcschr.c): New rule. * sysdeps/powerpc/power6/wcsrchr.c: Remove file. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc64/power6/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcsrchr-power6 and wcsrchr-power7. (CFLAGS-wcsrchr-power7.c, CFLAGS-wcsrchr-power6.c): Remove rule. * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c: Remove wcsrchr optimizations. --- sysdeps/powerpc/Makefile | 1 + sysdeps/powerpc/power6/wcsrchr.c | 89 ------------------- .../powerpc32/power4/multiarch/Makefile | 7 -- .../power4/multiarch/ifunc-impl-list.c | 11 --- .../power4/multiarch/wcsrchr-power6.c | 20 ----- .../power4/multiarch/wcsrchr-power7.c | 20 ----- .../power4/multiarch/wcsrchr-ppc32.c | 26 ------ .../powerpc32/power4/multiarch/wcsrchr.c | 36 -------- sysdeps/powerpc/powerpc64/multiarch/Makefile | 7 -- .../powerpc64/multiarch/ifunc-impl-list.c | 11 --- .../powerpc64/multiarch/wcsrchr-power6.c | 19 ---- .../powerpc64/multiarch/wcsrchr-power7.c | 19 ---- .../powerpc64/multiarch/wcsrchr-ppc64.c | 18 ---- sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c | 36 -------- sysdeps/powerpc/powerpc64/power6/wcsrchr.c | 1 - 15 files changed, 1 insertion(+), 320 deletions(-) delete mode 100644 sysdeps/powerpc/power6/wcsrchr.c delete mode 100644 sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c delete mode 100644 sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c delete mode 100644 sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c delete mode 100644 sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c delete mode 100644 sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c delete mode 100644 sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c delete mode 100644 sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c delete mode 100644 sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c delete mode 100644 sysdeps/powerpc/powerpc64/power6/wcsrchr.c -- 2.17.1 Reviewed-by: Gabriel F. T. Gomes diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile index 35cf1c624b..05675bc8ae 100644 --- a/sysdeps/powerpc/Makefile +++ b/sysdeps/powerpc/Makefile @@ -50,4 +50,5 @@ endif ifeq ($(subdir),wcsmbs) CFLAGS-wcscpy.c += -DUNROLL_NTIMES=8 CFLAGS-wcschr.c += -DUNROLL_NTIMES=8 +CFLAGS-wcsrchr.c += -DUNROLL_NTIMES=8 endif diff --git a/sysdeps/powerpc/power6/wcsrchr.c b/sysdeps/powerpc/power6/wcsrchr.c deleted file mode 100644 index 1762bd276c..0000000000 --- a/sysdeps/powerpc/power6/wcsrchr.c +++ /dev/null @@ -1,89 +0,0 @@ -/* wcsrchr.c - Wide Character Reverse Search for POWER6+. - Copyright (C) 2012-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ - -#include - -#ifndef WCSRCHR -# define WCSRCHR wcsrchr -#endif - -/* Find the last occurrence of WC in WCS. */ -wchar_t * -WCSRCHR (const wchar_t *wcs, const wchar_t wc) -{ - const wchar_t *wcs2 = wcs + 1; - const wchar_t *retval = NULL; - - if (*wcs == wc) - retval = wcs; - - if (*wcs == L'\0') return (wchar_t *) retval; - - do - { - wcs+=2; - - if (*wcs2 == wc) - retval = wcs2; - if (*wcs2 == L'\0') - return (wchar_t *) retval; - wcs2+=2; - - if (*wcs == wc) - retval = wcs; - if (*wcs == L'\0') - return (wchar_t *) retval; - wcs+=2; - - if (*wcs2 == wc) - retval = wcs2; - if (*wcs2 == L'\0') - return (wchar_t *) retval; - wcs2+=2; - - if (*wcs == wc) - retval = wcs; - if (*wcs == L'\0') - return (wchar_t *) retval; - wcs+=2; - - if (*wcs2 == wc) - retval = wcs2; - if (*wcs2 == L'\0') - return (wchar_t *) retval; - wcs2+=2; - - if (*wcs == wc) - retval = wcs; - if (*wcs == L'\0') - return (wchar_t *) retval; - wcs+=2; - - if (*wcs2 == wc) - retval = wcs2; - if (*wcs2 == L'\0') - return (wchar_t *) retval; - wcs2+=2; - - if (*wcs == wc) - retval = wcs; - } - while (*wcs != L'\0'); - - return (wchar_t *) retval; -} diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile index bb87c56b4d..5c68f07d19 100644 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile @@ -15,10 +15,3 @@ sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \ CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops endif - -ifeq ($(subdir),wcsmbs) -sysdep_routines += wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc32 - -CFLAGS-wcsrchr-power7.c += -mcpu=power7 -CFLAGS-wcsrchr-power6.c += -mcpu=power6 -endif diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c index 7624c3d5f0..16a64beb33 100644 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c +++ b/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c @@ -187,16 +187,5 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strchr, 1, __strchr_ppc)) - /* Support sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c. */ - IFUNC_IMPL (i, name, wcsrchr, - IFUNC_IMPL_ADD (array, i, wcsrchr, - hwcap & PPC_FEATURE_HAS_VSX, - __wcsrchr_power7) - IFUNC_IMPL_ADD (array, i, wcsrchr, - hwcap & PPC_FEATURE_ARCH_2_05, - __wcsrchr_power6) - IFUNC_IMPL_ADD (array, i, wcsrchr, 1, - __wcsrchr_ppc)) - return i; } diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c deleted file mode 100644 index 93c8bde9ba..0000000000 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#define WCSRCHR __wcsrchr_power6 - -#include diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c deleted file mode 100644 index a32a9845b7..0000000000 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c +++ /dev/null @@ -1,20 +0,0 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#define WCSRCHR __wcsrchr_power7 - -#include diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c deleted file mode 100644 index 690faf48b8..0000000000 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include - -#if IS_IN (libc) -# define WCSRCHR __wcsrchr_ppc -#endif - -extern __typeof (wcsrchr) __wcsrchr_ppc; - -#include diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c b/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c deleted file mode 100644 index 80adc7bcd1..0000000000 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Multiple versions of wcsrchr - Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if IS_IN (libc) -# include -# include -# include "init-arch.h" - -extern __typeof (wcsrchr) __wcsrchr_ppc attribute_hidden; -extern __typeof (wcsrchr) __wcsrchr_power6 attribute_hidden; -extern __typeof (wcsrchr) __wcsrchr_power7 attribute_hidden; - -libc_ifunc (wcsrchr, - (hwcap & PPC_FEATURE_HAS_VSX) - ? __wcsrchr_power7 : - (hwcap & PPC_FEATURE_ARCH_2_05) - ? __wcsrchr_power6 - : __wcsrchr_ppc); -#else -#include -#endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile index c70f4a2b5a..ea936bf9ed 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile @@ -37,10 +37,3 @@ endif CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops endif - -ifeq ($(subdir),wcsmbs) -sysdep_routines += wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc64 - -CFLAGS-wcsrchr-power7.c += -mcpu=power7 -CFLAGS-wcsrchr-power6.c += -mcpu=power6 -endif diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c index 9b1e4d141d..c0a927d73e 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c @@ -260,17 +260,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, IFUNC_IMPL_ADD (array, i, strncasecmp_l, 1, __strncasecmp_l_ppc)) - /* Support sysdeps/powerpc/powerpc64/multiarch/wcschr.c. */ - IFUNC_IMPL (i, name, wcsrchr, - IFUNC_IMPL_ADD (array, i, wcsrchr, - hwcap & PPC_FEATURE_HAS_VSX, - __wcsrchr_power7) - IFUNC_IMPL_ADD (array, i, wcsrchr, - hwcap & PPC_FEATURE_ARCH_2_05, - __wcsrchr_power6) - IFUNC_IMPL_ADD (array, i, wcsrchr, 1, - __wcsrchr_ppc)) - /* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */ IFUNC_IMPL (i, name, strrchr, IFUNC_IMPL_ADD (array, i, strrchr, diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c deleted file mode 100644 index a68569d30c..0000000000 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c +++ /dev/null @@ -1,19 +0,0 @@ -/* wcsrchr.c - Wide Character Search for powerpc64/power6. - Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ - -#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c deleted file mode 100644 index f27553f4ab..0000000000 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c +++ /dev/null @@ -1,19 +0,0 @@ -/* wcsrchr.c - Wide Character Search for powerpc64/power7. - Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ - -#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c deleted file mode 100644 index b6504ebaef..0000000000 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include diff --git a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c b/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c deleted file mode 100644 index 52371a18b7..0000000000 --- a/sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Multiple versions of wcsrchr. - Copyright (C) 2013-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#if IS_IN (libc) -# include -# include -# include "init-arch.h" - -extern __typeof (wcsrchr) __wcsrchr_ppc attribute_hidden; -extern __typeof (wcsrchr) __wcsrchr_power6 attribute_hidden; -extern __typeof (wcsrchr) __wcsrchr_power7 attribute_hidden; - -libc_ifunc (wcsrchr, - (hwcap & PPC_FEATURE_HAS_VSX) - ? __wcsrchr_power7 : - (hwcap & PPC_FEATURE_ARCH_2_05) - ? __wcsrchr_power6 - : __wcsrchr_ppc); -#else -#include -#endif diff --git a/sysdeps/powerpc/powerpc64/power6/wcsrchr.c b/sysdeps/powerpc/powerpc64/power6/wcsrchr.c deleted file mode 100644 index b86472d7bd..0000000000 --- a/sysdeps/powerpc/powerpc64/power6/wcsrchr.c +++ /dev/null @@ -1 +0,0 @@ -#include