From 454de03dbd58b753ee49c2664c0c05bb0cd234a4 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Tue, 16 Dec 2025 19:01:29 +0300 Subject: [PATCH] Updated docs with the new SIMD macros, added a release note for SIMD to_chars. Also clarified the meaning of BOOST_UUID_USE_AVX10_1 in the docs as the previous wording could be taken that it indicates support for a subset of AVX-512 that is supported in Skylake-X. --- doc/uuid/changes.adoc | 1 + doc/uuid/configuration.adoc | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/uuid/changes.adoc b/doc/uuid/changes.adoc index 2bd8123..9674ad7 100644 --- a/doc/uuid/changes.adoc +++ b/doc/uuid/changes.adoc @@ -9,6 +9,7 @@ * Added a `noexcept` `operator()` overload to `string_generator`. * `string_generator` now supports the Unicode character types in addition to `char` and `wchar_t`. * Most `uuid` accessors, operations, and `to_chars` are now `constexpr` when possible (on {cpp}14 and higher and on recent compilers). +* Added SIMD implementation of `to_chars`, which can offer up to 5.5x performance improvement in UUID formatting. == Changes in Boost 1.90.0 diff --git a/doc/uuid/configuration.adoc b/doc/uuid/configuration.adoc index fe36006..42156b5 100644 --- a/doc/uuid/configuration.adoc +++ b/doc/uuid/configuration.adoc @@ -25,15 +25,22 @@ However, there are a few options that can be enabled by defining macros prior to |`BOOST_UUID_USE_SSE3` |If defined, enables optimizations for https://en.wikipedia.org/wiki/SSE3[SSE3] extensions available in x86 processors. +|`BOOST_UUID_USE_SSSE3` +|If defined, enables optimizations for https://en.wikipedia.org/wiki/SSSE3[SSSE3] extensions available in x86 processors. + |`BOOST_UUID_USE_SSE41` |If defined, enables optimizations for https://en.wikipedia.org/wiki/SSE4#SSE4.1[SSE4.1] extensions available in x86 processors. |`BOOST_UUID_USE_AVX` |If defined, enables optimizations for https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX] extensions available in modern x86 processors. +|`BOOST_UUID_USE_AVX2` +|If defined, enables optimizations for https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2[AVX2] extensions available in modern x86 processors. + |`BOOST_UUID_USE_AVX10_1` |If defined, enables optimizations for https://en.wikipedia.org/wiki/AVX-512[AVX-512] and https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX10[AVX10.1] extensions available in modern x86 processors. - The library does not require 512-bit vectors and is compatible with CPUs implementing AVX-512F, CD, VL, BW and DQ instruction subsets (i.e. equivalent to Intel Skylake-X). + When defined by user, this macro indicates support for the full set of instructions defined in AVX10.1. Currently, the library does not require 512-bit vectors and is compatible with CPUs implementing AVX-512F, + CD, VL, BW and DQ instruction subsets (i.e. equivalent to Intel Skylake-X), so it may auto-detect and use AVX-512 even if only those subsets are supported. |===