From patchwork Tue Jan 15 03:02:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Blanchard X-Patchwork-Id: 31060 Received: (qmail 110471 invoked by alias); 15 Jan 2019 03:02:08 -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 110459 invoked by uid 89); 15 Jan 2019 03:02:08 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:authent X-HELO: ozlabs.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ozlabs.org; s=201707; t=1547521324; bh=hitXsgtxG4QqmOOoTQAo0iDgwsp13HwnBT0FjSTws1k=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=c3AgfQiWJj0PpPWkOZ3lz+dOxEl7CVtbdWIcxFOcK5UPBOt6Xstq65nT1geIiPlv/ MpE6CtYnujDB6+9ojSjWvVnGGaYGQbHW4fEWmz8iNjPg0mJpA0x0XQx68q1Iyv9f3i bmCFgEXIImEydBhpG8LFjaVL6Nsb/p8LDbHsX6nb+ZpLYrjnNw1QTykVeg4nyJ3snn utznAc193EeJ5lI9oXfCq4FXA5jU6lEACZbICQlxIaOgMPaCUdvEQduMV3zp0csC7v z2cyUZMQWNZQEXe4zZipxK+cyDxET81adYHwuLeud0byhbZiv+Kdpkx/7g8DaEIz9X Vb12gwI8tyOUw== Date: Tue, 15 Jan 2019 14:02:00 +1100 From: Anton Blanchard To: Rajalakshmi Srinivasaraghavan Cc: libc-alpha@sourceware.org, Tulio Magno Quites Machado Filho Subject: Re: [PATCH] powerpc: Rearrange little endian specific files Message-ID: <20190115140200.114f84b5@kryten> In-Reply-To: <1534227122-24270-1-git-send-email-raji@linux.vnet.ibm.com> References: <1534227122-24270-1-git-send-email-raji@linux.vnet.ibm.com> MIME-Version: 1.0 Hi, > This patch moves little endian specific POWER9 optimization files to > sysdeps/powerpc/powerpc64/le and creates POWER9 ifunc functions > only for little endian. This patch causes a 70% regression in my strncmp test. Typo: __LITTLE_ENDIAN_ should be __LITTLE_ENDIAN__ Thanks, Anton diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c index c4a40d1ec7..9c887ee181 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c @@ -29,14 +29,18 @@ extern __typeof (strncmp) __strncmp_ppc attribute_hidden; extern __typeof (strncmp) __strncmp_power4 attribute_hidden; extern __typeof (strncmp) __strncmp_power7 attribute_hidden; extern __typeof (strncmp) __strncmp_power8 attribute_hidden; +# ifdef __LITTLE_ENDIAN__ extern __typeof (strncmp) __strncmp_power9 attribute_hidden; +# endif # undef strncmp /* Avoid DWARF definition DIE on ifunc symbol so that GDB can handle ifunc symbol properly. */ libc_ifunc_redirected (__redirect_strncmp, strncmp, +# ifdef __LITTLE_ENDIAN_ (hwcap2 & PPC_FEATURE2_ARCH_3_00) ? __strncmp_power9 : +# endif (hwcap2 & PPC_FEATURE2_ARCH_2_07) ? __strncmp_power8 : (hwcap & PPC_FEATURE_HAS_VSX)