public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "wangxuszcn at foxmail dot com" <sourceware-bugzilla@sourceware.org> To: glibc-bugs@sourceware.org Subject: [Bug string/28214] New: [suggestion] using stnp instead of stp in memset of aarch64 Date: Tue, 10 Aug 2021 02:10:22 +0000 [thread overview] Message-ID: <bug-28214-131@http.sourceware.org/bugzilla/> (raw) https://sourceware.org/bugzilla/show_bug.cgi?id=28214 Bug ID: 28214 Summary: [suggestion] using stnp instead of stp in memset of aarch64 Product: glibc Version: unspecified Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: string Assignee: unassigned at sourceware dot org Reporter: wangxuszcn at foxmail dot com Target Milestone: --- Created attachment 13608 --> https://sourceware.org/bugzilla/attachment.cgi?id=13608&action=edit memset_change_stp_to_stnp in aarch64 Generally, after the memset is called to perform initialization, the destination address is not used immediately, suggest that using stnp instead of stp in memset of aarch64. Background Knowledge: The ARM v8-A architecture provides load/store non-temporal pair instructions (LDNP/STNP) that provide a hint to the memory system that an access is non-temporal or streaming, and unlikely to be repeated in the near future. diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S index 9067ea2..83bae2f 100644 --- a/sysdeps/aarch64/memset.S +++ b/sysdeps/aarch64/memset.S @@ -74,8 +74,8 @@ L(set_medium): 32 bytes from the end. */ L(set96): str q0, [dstin, 16] - stp q0, q0, [dstin, 32] - stp q0, q0, [dstend, -32] + stnp q0, q0, [dstin, 32] + stnp q0, q0, [dstend, -32] ret .p2align 3 @@ -91,13 +91,13 @@ L(no_zva): sub count, dstend, dst /* Count is 16 too large. */ sub dst, dst, 16 /* Dst is biased by -32. */ sub count, count, 64 + 16 /* Adjust count and bias for loop. */ -1: stp q0, q0, [dst, 32] - stp q0, q0, [dst, 64]! +1: stnp q0, q0, [dst, 32] + stnp q0, q0, [dst, 64]! L(tail64): subs count, count, 64 b.hi 1b -2: stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] +2: stnp q0, q0, [dstend, -64] + stnp q0, q0, [dstend, -32] ret L(try_zva): @@ -116,10 +116,10 @@ L(try_zva): */ L(zva_64): str q0, [dst, 16] - stp q0, q0, [dst, 32] + stnp q0, q0, [dst, 32] bic dst, dst, 63 - stp q0, q0, [dst, 64] - stp q0, q0, [dst, 96] + stnp q0, q0, [dst, 64] + stnp q0, q0, [dst, 96] sub count, dstend, dst /* Count is now 128 too large. */ sub count, count, 128+64+64 /* Adjust count and bias for loop. */ add dst, dst, 128 @@ -128,10 +128,10 @@ L(zva_64): add dst, dst, 64 subs count, count, 64 b.hi 1b - stp q0, q0, [dst, 0] - stp q0, q0, [dst, 32] - stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] + stnp q0, q0, [dst, 0] + stnp q0, q0, [dst, 32] + stnp q0, q0, [dstend, -64] + stnp q0, q0, [dstend, -32] ret .p2align 3 @@ -140,9 +140,9 @@ L(zva_128): b.ne L(zva_other) str q0, [dst, 16] - stp q0, q0, [dst, 32] - stp q0, q0, [dst, 64] - stp q0, q0, [dst, 96] + stnp q0, q0, [dst, 32] + stnp q0, q0, [dst, 64] + stnp q0, q0, [dst, 96] bic dst, dst, 127 sub count, dstend, dst /* Count is now 128 too large. */ sub count, count, 128+128 /* Adjust count and bias for loop. */ @@ -151,10 +151,10 @@ L(zva_128): add dst, dst, 128 subs count, count, 128 b.hi 1b - stp q0, q0, [dstend, -128] - stp q0, q0, [dstend, -96] - stp q0, q0, [dstend, -64] - stp q0, q0, [dstend, -32] + stnp q0, q0, [dstend, -128] + stnp q0, q0, [dstend, -96] + stnp q0, q0, [dstend, -64] + stnp q0, q0, [dstend, -32] ret L(zva_other): @@ -170,8 +170,8 @@ L(zva_other): subs count, tmp1, dst /* Actual alignment bytes to write. */ bic tmp1, tmp1, tmp2 /* Aligned dc zva start address. */ beq 2f -1: stp q0, q0, [dst], 64 - stp q0, q0, [dst, -32] +1: stnp q0, q0, [dst], 64 + stnp q0, q0, [dst, -32] subs count, count, 64 b.hi 1b 2: mov dst, tmp1 -- You are receiving this mail because: You are on the CC list for the bug.
next reply other threads:[~2021-08-10 2:10 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-10 2:10 wangxuszcn at foxmail dot com [this message] 2022-04-21 14:41 ` [Bug string/28214] " wdijkstr at arm dot com 2022-04-21 14:44 ` wangxuszcn at foxmail dot com 2024-02-01 20:12 ` pinskia at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-28214-131@http.sourceware.org/bugzilla/ \ --to=sourceware-bugzilla@sourceware.org \ --cc=glibc-bugs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).