From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124027 invoked by alias); 25 Sep 2015 14:55:32 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 124014 invoked by uid 89); 25 Sep 2015 14:55:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-la0-f51.google.com MIME-Version: 1.0 X-Received: by 10.152.45.41 with SMTP id j9mr56635lam.4.1443192927284; Fri, 25 Sep 2015 07:55:27 -0700 (PDT) In-Reply-To: <004c01d0cba1$e15ac5a0$a41050e0$@com> References: <004c01d0cba1$e15ac5a0$a41050e0$@com> Date: Fri, 25 Sep 2015 14:55:00 -0000 Message-ID: Subject: Re: [PATCH][AArch64] Optimized memset From: Marcus Shawcroft To: Wilco Dijkstra Cc: GNU C Library Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2015-09/txt/msg00643.txt.bz2 On 31 July 2015 at 16:02, Wilco Dijkstra wrote: > This is an optimized memset for AArch64. Memset is split into 4 main cases: small sets of up to 16 > bytes, medium of 16..96 bytes which are fully unrolled. Large memsets of more than 96 bytes align > the destination and use an unrolled loop processing 64 bytes per iteration. Memsets of zero of more > than 256 use the dc zva instruction, and there are faster versions for the common ZVA sizes 64 or > 128. STP of Q registers is used to reduce codesize without loss of performance. > > Speedup on test-memset is 1% on Cortex-A57 and 8% on Cortex-A53. On a random test with varying sizes > and alignment the new version is 50% faster. > > OK for commit? > > ChangeLog: > 2015-07-31 Wilco Dijkstra > > * sysdeps/aarch64/memset.S (__memset): > Rewrite of optimized memset. > - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Please drop this unrelated white space change when you commit. OK /Marcus