From 3af17a423626a3e31d1badde8f3367f9c7783bec Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Fri, 9 Jan 2026 03:10:09 +0300 Subject: [PATCH] Added GitHub Actions jobs for SSSE3 and AVX targets. The targets verify the respective code paths in SIMD algorithms. The recently added SSE2 paths are already tested in the other, unspecialized jobs. Also added jobs to compile tests with BOOST_UUID_TO_FROM_CHARS_X86_USE_ZMM and BOOST_UUID_FROM_CHARS_X86_USE_VPERMI2B experimental macros defined. --- .github/workflows/ci.yml | 62 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9524ea8..999ee30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,6 +92,14 @@ jobs: os: ubuntu-latest install: g++-15-multilib address-model: 32,64 + - toolset: gcc-13 + cxxstd: "11,14,17,20,2b" + instruction-set: core2 + cpu-requirements: [ ssse3 ] + os: ubuntu-latest + container: ubuntu:24.04 + install: g++-13-multilib + address-model: 32,64 - toolset: gcc-13 cxxstd: "11,14,17,20,2b" instruction-set: nehalem @@ -100,6 +108,14 @@ jobs: container: ubuntu:24.04 install: g++-13-multilib address-model: 32,64 + - toolset: gcc-13 + cxxstd: "11,14,17,20,2b" + instruction-set: sandy-bridge + cpu-requirements: [ avx ] + os: ubuntu-latest + container: ubuntu:24.04 + install: g++-13-multilib + address-model: 32,64 - toolset: gcc-13 cxxstd: "11,14,17,20,2b" instruction-set: haswell @@ -124,6 +140,16 @@ jobs: container: ubuntu:24.04 install: g++-13-multilib address-model: 32,64 + # Experimental features + - toolset: gcc-13 + cxxstd: "11,14,17,20,2b" + instruction-set: rocketlake + cpu-requirements: [ avx512f, avx512cd, avx512vl, avx512dq, avx512bw, avx512vbmi, avx512_vbmi2, avx512_bitalg, bmi1, bmi2 ] + defines: [ BOOST_UUID_TO_FROM_CHARS_X86_USE_ZMM, BOOST_UUID_FROM_CHARS_X86_USE_VPERMI2B ] + os: ubuntu-latest + container: ubuntu:24.04 + install: g++-13-multilib + address-model: 32,64 - toolset: clang compiler: clang++-3.9 cxxstd: "11,14" @@ -238,6 +264,14 @@ jobs: container: ubuntu:25.10 os: ubuntu-latest install: clang-21 + - toolset: clang + compiler: clang++-17 + cxxstd: "11,14,17,20,2b" + instruction-set: core2 + cpu-requirements: [ ssse3 ] + container: ubuntu:24.04 + os: ubuntu-latest + install: clang-17 - toolset: clang compiler: clang++-17 cxxstd: "11,14,17,20,2b" @@ -246,6 +280,14 @@ jobs: container: ubuntu:24.04 os: ubuntu-latest install: clang-17 + - toolset: clang + compiler: clang++-17 + cxxstd: "11,14,17,20,2b" + instruction-set: sandy-bridge + cpu-requirements: [ avx ] + container: ubuntu:24.04 + os: ubuntu-latest + install: clang-17 - toolset: clang compiler: clang++-17 cxxstd: "11,14,17,20,2b" @@ -270,6 +312,16 @@ jobs: container: ubuntu:24.04 os: ubuntu-latest install: clang-17 + # Experimental features + - toolset: clang + compiler: clang++-17 + cxxstd: "11,14,17,20,2b" + instruction-set: rocketlake + cpu-requirements: [ avx512f, avx512cd, avx512vl, avx512dq, avx512bw, avx512vbmi, avx512_vbmi2, avx512_bitalg, bmi1, bmi2 ] + defines: [ BOOST_UUID_TO_FROM_CHARS_X86_USE_ZMM, BOOST_UUID_FROM_CHARS_X86_USE_VPERMI2B ] + container: ubuntu:24.04 + os: ubuntu-latest + install: clang-17 - toolset: clang os: macos-14 cxxstd: "11,14,17,20,2b" @@ -346,6 +398,7 @@ jobs: cd ../boost-root ADDRMD=${{matrix.address-model}} INSTRUCTION_SET=${{matrix.instruction-set}} + b2_args=(-j2 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} ${ADDRMD:+address-model=$ADDRMD} ${INSTRUCTION_SET:+instruction-set=$INSTRUCTION_SET} variant=debug,release) if [ -n "${{matrix.cpu-requirements}}" ] then cpu_flags="$(lscpu | grep -F "Flags:" | sed "s/^Flags:\\s*//")"; @@ -360,7 +413,14 @@ jobs: fi done fi - ./b2 -j2 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} ${ADDRMD:+address-model=$ADDRMD} ${INSTRUCTION_SET:+instruction-set=$INSTRUCTION_SET} variant=debug,release + if [ -n "${{matrix.defines}}" ] + then + for define in ${{join(matrix.defines, ' ')}} + do + b2_args+=("define=$define") + done + fi + ./b2 "${b2_args[@]}" windows: strategy: