HomeFreeBSD

libc: scalar memchr() in RISC-V assembly

Description

libc: scalar memchr() in RISC-V assembly

Added an optimized memchr() implementation in RISC-V assembly and updated
the relevant manpage.

│ memchr_baseline │            memchr_scalar            │
│     sec/op      │   sec/op     vs base                │

Short 636.6µ ± 1% 495.9µ ± 1% -22.10% (p=0.000 n=20)
Mid 279.7µ ± 1% 224.1µ ± 1% -19.87% (p=0.000 n=20)
Long 138.8µ ± 0% 124.9µ ± 0% -10.00% (p=0.000 n=20)
geomean 291.3µ 240.3µ -17.48%

│ memchr_baseline │            memchr_scalar             │
│       B/s       │     B/s       vs base                │

Short 187.3Mi ± 1% 240.4Mi ± 1% +28.37% (p=0.000 n=20)
Mid 426.2Mi ± 1% 531.9Mi ± 1% +24.79% (p=0.000 n=20)
Long 859.0Mi ± 0% 954.4Mi ± 0% +11.11% (p=0.000 n=20)
geomean 409.3Mi 496.0Mi +21.19%

MFC after: 1 month
MFC to: stable/15
Approved by: mhorne, markj (mentor)
Reviewed by: fuz
Sponsored by: Google LLC (GSoC 2024)
Differential Revision: https://reviews.freebsd.org/D46023

(cherry picked from commit 563efdd3bd5d5f94e356444bb64fd66e13dda5e1)

Details

Provenance
strajabotAuthored on Jul 17 2024, 11:19 AM
fuzCommitted on Sun, Nov 30, 12:43 AM
Reviewer
fuz
Differential Revision
D46023: libc: scalar memchr() in RISC-V assembly
Parents
rG09d15e9bc256: simd.7: add scalar strrchr() for RISC-V to manpage
Branches
Unknown
Tags
Unknown