git: c21ae96625 - main - Status/2023Q3/simd.adoc: Add report

From: Lorenzo Salvadore <>
Date: Thu, 28 Sep 2023 13:45:03 UTC
The branch main has been updated by salvadore:


commit c21ae96625899976eb80ab84bf0931ecd0ca269d
Author:     Robert Clausecker <>
AuthorDate: 2023-09-28 13:44:26 +0000
Commit:     Lorenzo Salvadore <>
CommitDate: 2023-09-28 13:44:26 +0000

    Status/2023Q3/simd.adoc: Add report
 .../en/status/report-2023-07-2023-09/simd.adoc     | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/website/content/en/status/report-2023-07-2023-09/simd.adoc b/website/content/en/status/report-2023-07-2023-09/simd.adoc
new file mode 100644
index 0000000000..33f4848790
--- /dev/null
+++ b/website/content/en/status/report-2023-07-2023-09/simd.adoc
@@ -0,0 +1,28 @@
+=== SIMD enhancements for amd64
+Links: +
+link:[Project proposal] URL: link:[]
+link:[simd(7)] URL: link:[]
+Contact: Robert Clausecker <>
+SIMD instruction set extensions such as SSE, AVX, and NEON are ubiquitous on modern computers and offer performance advantages for many applications.
+The goal of this project is to provide SIMD-enhanced versions of common libc functions (mostly those described in man:string[3]), speeding up most C programs.
+For each function optimised, up to four implementations will be provided:
+ * a *scalar* implementation optimised for amd64, but without any SIMD usage,
+ * a *baseline* implementation using SSE and SSE2 or alternatively an *x86-64-v2* implementation using all SSE extensions up to SSE4.2,
+ * an *x86-64-v3* implementation using AVX and AVX2, and
+ * an *x86-64-v4* implementation using AVX-512F/BW/CD/DQ.
+Users will be able to select which level of SIMD enhancements to use by setting the `ARCHLEVEL` environment variable.
+While the current project only concerns amd64, the work may be expanded to other architectures like arm64 in the future.
+During the last few months, significant progress has been made on this project.
+SIMD-enhanced versions of man:bcmp[3], man:index[3], man:memchr[3], man:memcmp[3], man:stpcpy[3], man:strchr[3], man:strchrnul[3], man:strcpy[3], man:strcspn[3], man:strlen[3], man:strnlen[3], and man:strspn[3] have landed.
+Functions man:memcpy[3], man:memmove[3], man:strcmp[3], man:timingsafe_bcmp[3] (see link:[D41673]), and man:timingsafe_memcmp[3] (see link:[D41696]) are work in progress.
+Unfortunately, the work has not made the cut for FreeBSD 14.0, but it is slated to be part of FreeBSD 14.1.
+Sponsor: The FreeBSD Foundation