Message ID | 1505950480-14830-1-git-send-email-wei.guo.simon@gmail.com (mailing list archive) |
---|---|
Headers | show
Return-Path: <linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org> X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xz2Wt0hD7z9sRW for <patchwork-incoming@ozlabs.org>; Fri, 22 Sep 2017 15:45:46 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="q+LBFRVl"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3xz2Ws6YS9zDsN0 for <patchwork-incoming@ozlabs.org>; Fri, 22 Sep 2017 15:45:45 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="q+LBFRVl"; dkim-atps=neutral X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:400e:c00::242; helo=mail-pf0-x242.google.com; envelope-from=wei.guo.simon@gmail.com; receiver=<UNKNOWN>) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="q+LBFRVl"; dkim-atps=neutral Received: from mail-pf0-x242.google.com (mail-pf0-x242.google.com [IPv6:2607:f8b0:400e:c00::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3xz2Mr03SXzDrJL for <linuxppc-dev@lists.ozlabs.org>; Fri, 22 Sep 2017 15:38:47 +1000 (AEST) Received: by mail-pf0-x242.google.com with SMTP id g65so63646pfe.1 for <linuxppc-dev@lists.ozlabs.org>; Thu, 21 Sep 2017 22:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=82hpzOd133LcQE9kZJeXFnKLq8z38nWfGEvhWqD9edk=; b=q+LBFRVln6XJXysRjQLQuXl/3U/2HSGqzd228dMgWNsMwpF0w+HSjWIzlrXsH2wRaP lZN//+eFbnTxCfUCj8LJwCR/tBd4hhYOX0M/sqqg3xOcBIrnZbReKorfzuFhnQ8j1bHm tB2XBhGF37J5yEFPQpC7edMhTkFqlM/OXDdf0U+3Ids8B8XxW3rCLeZAcNK7nnDtAalB FXvJvaBBUttEfDJ+c8AK8Td89mfd1j06l8wQvcmSaPMdWpiMPEXgsFqPGoLUhBupmgoF Q4oG25NS+8bTwUzNR09oxr0dzCikSfIcLol0b7W5OdDqEu7u8nmbBbXiDdSvsxBHzm8P LfWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=82hpzOd133LcQE9kZJeXFnKLq8z38nWfGEvhWqD9edk=; b=CYQ6EXGiIY4Gvv67Trz3A7YWVu0YqzXBK2wFMtZoYu9YGP7tIxNuekGUO7zEQCKHkx Aj/6eaS/z7+SmCfFvxXuRmzOgZMo9zmAH/R/V7ns2JOhcsswCGAEXOIQeha4TqAd+5y9 c3gIzw92AVr3a0WC+l4ITmVy+d02pD/GNMprlvkyKCG4uPIBdVbxX3eMtuI2a2O+TXS+ LH1WthhCMhRN9Pci25+OU7TTb9GZ5W2+0UqHJbmgtRh2q6doVa0Os44REthrcU2/Po7x hRHgi9NKjnG0gHY5EYcIY0QC8YGWlJdQGc2IjYZIwkTujtxwZ86RU4CN9WnKryrRsH+b GTNQ== X-Gm-Message-State: AHPjjUjgLmNYnmpM8WCEtSobxYPQJx1qkNgECpuSXcvXBrYdrcx5V6e7 Q34TczfQUK+mr4L7L1gPXwaipw== X-Google-Smtp-Source: AOwi7QCecUAS6L+efFLkUnYhb+/SYOww57YDW/KeAo5Ln6vinfGiVcMl0KXuOpF1eO4EDbuIu/Xaag== X-Received: by 10.99.122.22 with SMTP id v22mr7971354pgc.394.1506058725571; Thu, 21 Sep 2017 22:38:45 -0700 (PDT) Received: from simonLocalRHEL7.x64 ([112.73.6.48]) by smtp.gmail.com with ESMTPSA id r12sm6234639pfd.187.2017.09.21.22.38.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Sep 2017 22:38:44 -0700 (PDT) From: wei.guo.simon@gmail.com To: linuxppc-dev@lists.ozlabs.org Subject: [PATCH v2 0/3] powerpc/64: memcmp() optimization Date: Thu, 21 Sep 2017 07:34:37 +0800 Message-Id: <1505950480-14830-1-git-send-email-wei.guo.simon@gmail.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Linux on PowerPC Developers Mail List <linuxppc-dev.lists.ozlabs.org> List-Unsubscribe: <https://lists.ozlabs.org/options/linuxppc-dev>, <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe> List-Archive: <http://lists.ozlabs.org/pipermail/linuxppc-dev/> List-Post: <mailto:linuxppc-dev@lists.ozlabs.org> List-Help: <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help> List-Subscribe: <https://lists.ozlabs.org/listinfo/linuxppc-dev>, <mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe> Cc: Simon Guo <wei.guo.simon@gmail.com>, David Laight <David.Laight@ACULAB.COM>, "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" <linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org> |
Series | powerpc/64: memcmp() optimization | expand |
From: Simon Guo <wei.guo.simon@gmail.com> There is some room to optimize memcmp() in powerpc 64 bits version for following 2 cases: (1) Even src/dst addresses are not aligned with 8 bytes at the beginning, memcmp() can align them and go with .Llong comparision mode without fallback to .Lshort comparision mode do compare buffer byte by byte. (2) VMX instructions can be used to speed up for large size comparision. This patch set also updates memcmp selftest case to make it compiled and incorporate large size comparison case. v1 -> v2: - update 8bytes unaligned bytes comparison method. - fix a VMX comparision bug. - enhanced the original memcmp() selftest. - add powerpc/64 to subject/commit message. Simon Guo (3): powerpc/64: Align bytes before fall back to .Lshort in powerpc64 memcmp(). powerpc/64: enhance memcmp() with VMX instruction for long bytes comparision powerpc:selftest update memcmp_64 selftest for VMX implementation arch/powerpc/include/asm/asm-prototypes.h | 2 +- arch/powerpc/lib/copypage_power7.S | 2 +- arch/powerpc/lib/memcmp_64.S | 181 ++++++++++++++++++++- arch/powerpc/lib/memcpy_power7.S | 2 +- arch/powerpc/lib/vmx-helper.c | 2 +- .../selftests/powerpc/copyloops/asm/ppc_asm.h | 2 +- .../selftests/powerpc/stringloops/asm/ppc_asm.h | 31 ++++ .../testing/selftests/powerpc/stringloops/memcmp.c | 63 ++++--- 8 files changed, 254 insertions(+), 31 deletions(-)