From: Pincheng Wang <pincheng.plct@isrc.iscas.ac.cn>
To: musl@lists.openwall.com, Yao Zi <ziyao@disroot.org>
Subject: Re: [musl] [PATCH 1/1] riscv64: optimize memset implementation with vector extension
Date: Fri, 26 Sep 2025 08:31:53 +0800 [thread overview]
Message-ID: <35488ed2-3c30-4bc4-89ab-70f30dee9890@isrc.iscas.ac.cn> (raw)
In-Reply-To: <aNVgMkWvRzf3kWSt@pie>
On 2025/9/25 23:30, Yao Zi wrote:
> On Thu, Sep 25, 2025 at 09:15:57PM +0800, Pincheng Wang wrote:
>> Use head-tail filling strategy for small sizes and dynamic vsetvli
>> approach for vector loops to reduce branch overhead. Add conditional
>> compilation to fall back to scalar implementation when __riscv_vector is
>> not available.
>>
>> Signed-off-by: Pincheng Wang <pincheng.plct@isrc.iscas.ac.cn>
>> ---
>> src/string/riscv64/memset.S | 101 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 101 insertions(+)
>> create mode 100644 src/string/riscv64/memset.S
>>
>> diff --git a/src/string/riscv64/memset.S b/src/string/riscv64/memset.S
>> new file mode 100644
>> index 00000000..5fc6ee14
>> --- /dev/null
>> +++ b/src/string/riscv64/memset.S
>> @@ -0,0 +1,101 @@
>> +#ifdef __riscv_vector
>
> I don't think musl is built with V extension specified in march on
> RISC-V platforms by default. Does this patch only benefit builds that
> "-march=rv64gcv" is manually specified in CFLAGS?
>
> Furthermore, having RVV available at compilation-time doesn't mean it's
> available at runtime. This effectively raises the baseline for RISC-V
> platforms from RV64GC (or even lower) to RV64GCV, where the latter isn't
> implied by the mostly-adapted RVA20 profile.
>
> Best regards,
> Yao Zi
Hi, Yao
Thank you for your review. This patch currently only takes effect when
`-march=rv64gcv` is manually specified in CFLAGS. I also understand your
concern about enabling the vector implementation purely through
compile-time conditionals.
I am investigating a runtime detection and dispatch mechanism to select
the appropriate implementation based on actual hardware support. If I
make progress on this and verify it works as expected, I will update the
approach in a v2 patch.
Best regards,
Pincheng Wang
next prev parent reply other threads:[~2025-09-26 0:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-25 13:15 [musl] [PATCH 0/1] riscv64: Add RVV optimized memset implementation Pincheng Wang
2025-09-25 13:15 ` [musl] [PATCH 1/1] riscv64: optimize memset implementation with vector extension Pincheng Wang
2025-09-25 15:30 ` Yao Zi
2025-09-26 0:31 ` Pincheng Wang [this message]
2025-09-26 3:37 ` Markus Wichmann
2025-09-26 11:21 ` Pincheng Wang
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=35488ed2-3c30-4bc4-89ab-70f30dee9890@isrc.iscas.ac.cn \
--to=pincheng.plct@isrc.iscas.ac.cn \
--cc=musl@lists.openwall.com \
--cc=ziyao@disroot.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
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 NNTP newsgroup(s).