From 6e7bb356a5da369e9b2f2649e703e701d02d4240 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 6 May 2026 15:43:44 +0200 Subject: [PATCH 1/5] Uniform header inclusion --- .../arch/common/xsimd_common_logical.hpp | 4 +- .../xsimd/arch/common/xsimd_common_math.hpp | 4 +- .../xsimd/arch/common/xsimd_common_trigo.hpp | 4 +- include/xsimd/arch/xsimd_avx2.hpp | 3 +- include/xsimd/arch/xsimd_scalar.hpp | 2 +- include/xsimd/arch/xsimd_sse3.hpp | 3 +- include/xsimd/arch/xsimd_vsx.hpp | 5 +- include/xsimd/memory/xsimd_alignment.hpp | 2 +- include/xsimd/types/xsimd_all_registers.hpp | 62 +++++++++---------- include/xsimd/types/xsimd_neon64_register.hpp | 2 +- include/xsimd/types/xsimd_sve_register.hpp | 4 +- include/xsimd/types/xsimd_wasm_register.hpp | 4 +- include/xsimd/xsimd.hpp | 18 +++--- test/test_shuffle.cpp | 2 +- 14 files changed, 60 insertions(+), 59 deletions(-) diff --git a/include/xsimd/arch/common/xsimd_common_logical.hpp b/include/xsimd/arch/common/xsimd_common_logical.hpp index 6ee5218aa..7c1a5e507 100644 --- a/include/xsimd/arch/common/xsimd_common_logical.hpp +++ b/include/xsimd/arch/common/xsimd_common_logical.hpp @@ -12,11 +12,11 @@ #ifndef XSIMD_COMMON_LOGICAL_HPP #define XSIMD_COMMON_LOGICAL_HPP +#include + #include "./xsimd_common_bit.hpp" #include "./xsimd_common_details.hpp" -#include - namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_math.hpp b/include/xsimd/arch/common/xsimd_common_math.hpp index 7dbb0ac05..7f44a428c 100644 --- a/include/xsimd/arch/common/xsimd_common_math.hpp +++ b/include/xsimd/arch/common/xsimd_common_math.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_COMMON_MATH_HPP #define XSIMD_COMMON_MATH_HPP +#include + #include "../xsimd_scalar.hpp" #include "./xsimd_common_details.hpp" #include "./xsimd_common_trigo.hpp" -#include - namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_trigo.hpp b/include/xsimd/arch/common/xsimd_common_trigo.hpp index d85511d2e..1939b5196 100644 --- a/include/xsimd/arch/common/xsimd_common_trigo.hpp +++ b/include/xsimd/arch/common/xsimd_common_trigo.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_COMMON_TRIGO_HPP #define XSIMD_COMMON_TRIGO_HPP -#include "./xsimd_common_details.hpp" - #include +#include "./xsimd_common_details.hpp" + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx2.hpp b/include/xsimd/arch/xsimd_avx2.hpp index ebffd910b..dd348d871 100644 --- a/include/xsimd/arch/xsimd_avx2.hpp +++ b/include/xsimd/arch/xsimd_avx2.hpp @@ -13,14 +13,13 @@ #define XSIMD_AVX2_HPP #include +#include #include #include "../types/xsimd_avx2_register.hpp" #include "../types/xsimd_batch_constant.hpp" #include "./utils/shifts.hpp" -#include - namespace xsimd { diff --git a/include/xsimd/arch/xsimd_scalar.hpp b/include/xsimd/arch/xsimd_scalar.hpp index 5cf38b71c..5443d69f6 100644 --- a/include/xsimd/arch/xsimd_scalar.hpp +++ b/include/xsimd/arch/xsimd_scalar.hpp @@ -20,7 +20,7 @@ #include #include -#include "xsimd/config/xsimd_macros.hpp" +#include "../config/xsimd_macros.hpp" #ifdef XSIMD_ENABLE_XTL_COMPLEX #include "xtl/xcomplex.hpp" diff --git a/include/xsimd/arch/xsimd_sse3.hpp b/include/xsimd/arch/xsimd_sse3.hpp index 3ece0ae3b..b65d430b2 100644 --- a/include/xsimd/arch/xsimd_sse3.hpp +++ b/include/xsimd/arch/xsimd_sse3.hpp @@ -12,9 +12,10 @@ #ifndef XSIMD_SSE3_HPP #define XSIMD_SSE3_HPP -#include "../types/xsimd_sse3_register.hpp" #include +#include "../types/xsimd_sse3_register.hpp" + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_vsx.hpp b/include/xsimd/arch/xsimd_vsx.hpp index 7af3ef807..19c0761dc 100644 --- a/include/xsimd/arch/xsimd_vsx.hpp +++ b/include/xsimd/arch/xsimd_vsx.hpp @@ -15,11 +15,12 @@ #include #include +#include + +#include "../types/xsimd_batch_fwd.hpp" #include "../types/xsimd_vsx_register.hpp" #include "./common/xsimd_common_cast.hpp" -#include - namespace xsimd { template diff --git a/include/xsimd/memory/xsimd_alignment.hpp b/include/xsimd/memory/xsimd_alignment.hpp index fd1918bea..30c2d16de 100644 --- a/include/xsimd/memory/xsimd_alignment.hpp +++ b/include/xsimd/memory/xsimd_alignment.hpp @@ -13,7 +13,7 @@ #define XSIMD_ALIGNMENT_HPP #include "../types/xsimd_utils.hpp" -#include "xsimd_aligned_allocator.hpp" +#include "./xsimd_aligned_allocator.hpp" namespace xsimd { diff --git a/include/xsimd/types/xsimd_all_registers.hpp b/include/xsimd/types/xsimd_all_registers.hpp index 69697ac7b..af693132f 100644 --- a/include/xsimd/types/xsimd_all_registers.hpp +++ b/include/xsimd/types/xsimd_all_registers.hpp @@ -9,49 +9,49 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "xsimd_fma3_sse_register.hpp" -#include "xsimd_fma4_register.hpp" -#include "xsimd_sse2_register.hpp" -#include "xsimd_sse3_register.hpp" -#include "xsimd_sse4_1_register.hpp" -#include "xsimd_sse4_2_register.hpp" +#include "./xsimd_fma3_sse_register.hpp" +#include "./xsimd_fma4_register.hpp" +#include "./xsimd_sse2_register.hpp" +#include "./xsimd_sse3_register.hpp" +#include "./xsimd_sse4_1_register.hpp" +#include "./xsimd_sse4_2_register.hpp" -#include "xsimd_avx2_register.hpp" -#include "xsimd_avx_register.hpp" -#include "xsimd_avxvnni_register.hpp" -#include "xsimd_fma3_avx2_register.hpp" -#include "xsimd_fma3_avx_register.hpp" +#include "./xsimd_avx2_register.hpp" +#include "./xsimd_avx_register.hpp" +#include "./xsimd_avxvnni_register.hpp" +#include "./xsimd_fma3_avx2_register.hpp" +#include "./xsimd_fma3_avx_register.hpp" -#include "xsimd_avx512vnni_avx512bw_register.hpp" -#include "xsimd_avx512vnni_avx512vbmi2_register.hpp" +#include "./xsimd_avx512vnni_avx512bw_register.hpp" +#include "./xsimd_avx512vnni_avx512vbmi2_register.hpp" -#include "xsimd_avx512ifma_register.hpp" -#include "xsimd_avx512vbmi2_register.hpp" -#include "xsimd_avx512vbmi_register.hpp" +#include "./xsimd_avx512ifma_register.hpp" +#include "./xsimd_avx512vbmi2_register.hpp" +#include "./xsimd_avx512vbmi_register.hpp" -#include "xsimd_avx512er_register.hpp" -#include "xsimd_avx512pf_register.hpp" +#include "./xsimd_avx512er_register.hpp" +#include "./xsimd_avx512pf_register.hpp" -#include "xsimd_avx512bw_register.hpp" -#include "xsimd_avx512cd_register.hpp" -#include "xsimd_avx512dq_register.hpp" -#include "xsimd_avx512f_register.hpp" +#include "./xsimd_avx512bw_register.hpp" +#include "./xsimd_avx512cd_register.hpp" +#include "./xsimd_avx512dq_register.hpp" +#include "./xsimd_avx512f_register.hpp" -#include "xsimd_i8mm_neon64_register.hpp" +#include "./xsimd_i8mm_neon64_register.hpp" -#include "xsimd_neon64_register.hpp" -#include "xsimd_neon_register.hpp" +#include "./xsimd_neon64_register.hpp" +#include "./xsimd_neon_register.hpp" -#include "xsimd_sve_register.hpp" +#include "./xsimd_sve_register.hpp" -#include "xsimd_rvv_register.hpp" +#include "./xsimd_rvv_register.hpp" -#include "xsimd_wasm_register.hpp" +#include "./xsimd_wasm_register.hpp" -#include "xsimd_vsx_register.hpp" +#include "./xsimd_vsx_register.hpp" -#include "xsimd_vxe_register.hpp" +#include "./xsimd_vxe_register.hpp" #if XSIMD_WITH_EMULATED -#include "xsimd_emulated_register.hpp" +#include "./xsimd_emulated_register.hpp" #endif diff --git a/include/xsimd/types/xsimd_neon64_register.hpp b/include/xsimd/types/xsimd_neon64_register.hpp index 7fa0b2ce5..1df2d4abb 100644 --- a/include/xsimd/types/xsimd_neon64_register.hpp +++ b/include/xsimd/types/xsimd_neon64_register.hpp @@ -12,7 +12,7 @@ #ifndef XSIMD_NEON64_REGISTER_HPP #define XSIMD_NEON64_REGISTER_HPP -#include "xsimd_neon_register.hpp" +#include "./xsimd_neon_register.hpp" namespace xsimd { diff --git a/include/xsimd/types/xsimd_sve_register.hpp b/include/xsimd/types/xsimd_sve_register.hpp index a0d1b5b99..802588691 100644 --- a/include/xsimd/types/xsimd_sve_register.hpp +++ b/include/xsimd/types/xsimd_sve_register.hpp @@ -13,8 +13,8 @@ #ifndef XSIMD_SVE_REGISTER_HPP #define XSIMD_SVE_REGISTER_HPP -#include "xsimd_common_arch.hpp" -#include "xsimd_register.hpp" +#include "./xsimd_common_arch.hpp" +#include "./xsimd_register.hpp" #if XSIMD_WITH_SVE #include diff --git a/include/xsimd/types/xsimd_wasm_register.hpp b/include/xsimd/types/xsimd_wasm_register.hpp index 70b6ff9ad..5091b7636 100644 --- a/include/xsimd/types/xsimd_wasm_register.hpp +++ b/include/xsimd/types/xsimd_wasm_register.hpp @@ -13,8 +13,8 @@ #ifndef XSIMD_WASM_REGISTER_HPP #define XSIMD_WASM_REGISTER_HPP -#include "xsimd_common_arch.hpp" -#include "xsimd_register.hpp" +#include "./xsimd_common_arch.hpp" +#include "./xsimd_register.hpp" #if XSIMD_WITH_WASM #include diff --git a/include/xsimd/xsimd.hpp b/include/xsimd/xsimd.hpp index ea9087ef9..351f4935d 100644 --- a/include/xsimd/xsimd.hpp +++ b/include/xsimd/xsimd.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_HPP #define XSIMD_HPP -#include "config/xsimd_config.hpp" -#include "config/xsimd_macros.hpp" +#include "./config/xsimd_config.hpp" +#include "./config/xsimd_macros.hpp" -#include "arch/xsimd_scalar.hpp" -#include "memory/xsimd_aligned_allocator.hpp" -#include "types/xsimd_batch_fwd.hpp" +#include "./arch/xsimd_scalar.hpp" +#include "./memory/xsimd_aligned_allocator.hpp" +#include "./types/xsimd_batch_fwd.hpp" #if defined(XSIMD_NO_SUPPORTED_ARCHITECTURE) namespace xsimd @@ -32,12 +32,12 @@ namespace xsimd } #else -#include "types/xsimd_batch.hpp" -#include "types/xsimd_batch_constant.hpp" -#include "types/xsimd_traits.hpp" +#include "./types/xsimd_batch.hpp" +#include "./types/xsimd_batch_constant.hpp" +#include "./types/xsimd_traits.hpp" // This include must come last -#include "types/xsimd_api.hpp" +#include "./types/xsimd_api.hpp" #endif // XSIMD_NO_SUPPORTED_ARCHITECTURE #endif diff --git a/test/test_shuffle.cpp b/test/test_shuffle.cpp index ff4ab1ed5..b287e60c5 100644 --- a/test/test_shuffle.cpp +++ b/test/test_shuffle.cpp @@ -17,7 +17,7 @@ #include "test_utils.hpp" #ifdef __linux__ -#include "endian.h" +#include #if BYTE_ORDER == BIG_ENDIAN #define XSIMD_NO_SLIDE #endif From d3c929e7a35d777968e451aa0076a21e6627e0e4 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 13 May 2026 14:41:59 +0200 Subject: [PATCH 2/5] Inverse include order --- .../arch/common/xsimd_common_arithmetic.hpp | 6 +-- .../xsimd/arch/common/xsimd_common_cast.hpp | 4 +- .../arch/common/xsimd_common_complex.hpp | 4 +- .../arch/common/xsimd_common_details.hpp | 4 +- .../arch/common/xsimd_common_logical.hpp | 4 +- .../xsimd/arch/common/xsimd_common_math.hpp | 4 +- .../xsimd/arch/common/xsimd_common_memory.hpp | 6 +-- .../arch/common/xsimd_common_swizzle.hpp | 4 +- .../xsimd/arch/common/xsimd_common_trigo.hpp | 4 +- include/xsimd/arch/xsimd_avx.hpp | 6 +-- include/xsimd/arch/xsimd_avx2.hpp | 8 +-- include/xsimd/arch/xsimd_avx2_128.hpp | 4 +- include/xsimd/arch/xsimd_avx512bw.hpp | 4 +- include/xsimd/arch/xsimd_avx512f.hpp | 6 +-- include/xsimd/arch/xsimd_avx512vbmi.hpp | 4 +- include/xsimd/arch/xsimd_avx512vbmi2.hpp | 4 +- include/xsimd/arch/xsimd_avx_128.hpp | 4 +- include/xsimd/arch/xsimd_constants.hpp | 4 +- include/xsimd/arch/xsimd_emulated.hpp | 9 ++-- include/xsimd/arch/xsimd_isa.hpp | 1 - include/xsimd/arch/xsimd_neon.hpp | 12 ++--- include/xsimd/arch/xsimd_neon64.hpp | 8 +-- include/xsimd/arch/xsimd_rvv.hpp | 6 +-- include/xsimd/arch/xsimd_scalar.hpp | 4 +- include/xsimd/arch/xsimd_sse2.hpp | 8 +-- include/xsimd/arch/xsimd_sse3.hpp | 4 +- include/xsimd/arch/xsimd_sse4_1.hpp | 4 +- include/xsimd/arch/xsimd_sse4_2.hpp | 4 +- include/xsimd/arch/xsimd_ssse3.hpp | 6 +-- include/xsimd/arch/xsimd_sve.hpp | 6 +-- include/xsimd/arch/xsimd_vsx.hpp | 10 ++-- include/xsimd/arch/xsimd_vxe.hpp | 4 +- include/xsimd/arch/xsimd_wasm.hpp | 4 +- include/xsimd/config/xsimd_arch.hpp | 8 +-- .../xsimd/config/xsimd_cpu_features_arm.hpp | 6 +-- .../xsimd/config/xsimd_cpu_features_riscv.hpp | 6 +-- .../xsimd/memory/xsimd_aligned_allocator.hpp | 4 +- include/xsimd/types/xsimd_all_registers.hpp | 50 +++++++------------ include/xsimd/types/xsimd_api.hpp | 10 ++-- include/xsimd/types/xsimd_batch.hpp | 6 +-- include/xsimd/types/xsimd_batch_constant.hpp | 8 +-- include/xsimd/types/xsimd_common_arch.hpp | 4 +- include/xsimd/types/xsimd_register.hpp | 4 +- include/xsimd/xsimd.hpp | 3 +- 44 files changed, 134 insertions(+), 149 deletions(-) diff --git a/include/xsimd/arch/common/xsimd_common_arithmetic.hpp b/include/xsimd/arch/common/xsimd_common_arithmetic.hpp index ff2fb4118..fa1b9b03b 100644 --- a/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +++ b/include/xsimd/arch/common/xsimd_common_arithmetic.hpp @@ -12,13 +12,13 @@ #ifndef XSIMD_COMMON_ARITHMETIC_HPP #define XSIMD_COMMON_ARITHMETIC_HPP +#include "../../types/xsimd_batch_constant.hpp" +#include "./xsimd_common_details.hpp" + #include #include #include -#include "../../types/xsimd_batch_constant.hpp" -#include "./xsimd_common_details.hpp" - namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_cast.hpp b/include/xsimd/arch/common/xsimd_common_cast.hpp index b64613dfb..95753babd 100644 --- a/include/xsimd/arch/common/xsimd_common_cast.hpp +++ b/include/xsimd/arch/common/xsimd_common_cast.hpp @@ -12,11 +12,11 @@ #ifndef XSIMD_COMMON_CAST_HPP #define XSIMD_COMMON_CAST_HPP -#include - #include "../../config/xsimd_macros.hpp" #include "../../utils/xsimd_type_traits.hpp" +#include + namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/common/xsimd_common_complex.hpp b/include/xsimd/arch/common/xsimd_common_complex.hpp index 874825182..cb25535e1 100644 --- a/include/xsimd/arch/common/xsimd_common_complex.hpp +++ b/include/xsimd/arch/common/xsimd_common_complex.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_COMMON_COMPLEX_HPP #define XSIMD_COMMON_COMPLEX_HPP -#include - #include "./xsimd_common_details.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_details.hpp b/include/xsimd/arch/common/xsimd_common_details.hpp index cc9ab754c..a99f19319 100644 --- a/include/xsimd/arch/common/xsimd_common_details.hpp +++ b/include/xsimd/arch/common/xsimd_common_details.hpp @@ -12,13 +12,13 @@ #ifndef XSIMD_COMMON_DETAILS_HPP #define XSIMD_COMMON_DETAILS_HPP -#include - #include "../../math/xsimd_rem_pio2.hpp" #include "../../types/xsimd_common_arch.hpp" #include "../../types/xsimd_utils.hpp" #include "../xsimd_constants.hpp" +#include + namespace xsimd { // Forward declaration. Should we put them in a separate file? diff --git a/include/xsimd/arch/common/xsimd_common_logical.hpp b/include/xsimd/arch/common/xsimd_common_logical.hpp index 7c1a5e507..6ee5218aa 100644 --- a/include/xsimd/arch/common/xsimd_common_logical.hpp +++ b/include/xsimd/arch/common/xsimd_common_logical.hpp @@ -12,11 +12,11 @@ #ifndef XSIMD_COMMON_LOGICAL_HPP #define XSIMD_COMMON_LOGICAL_HPP -#include - #include "./xsimd_common_bit.hpp" #include "./xsimd_common_details.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_math.hpp b/include/xsimd/arch/common/xsimd_common_math.hpp index 7f44a428c..7dbb0ac05 100644 --- a/include/xsimd/arch/common/xsimd_common_math.hpp +++ b/include/xsimd/arch/common/xsimd_common_math.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_COMMON_MATH_HPP #define XSIMD_COMMON_MATH_HPP -#include - #include "../xsimd_scalar.hpp" #include "./xsimd_common_details.hpp" #include "./xsimd_common_trigo.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/common/xsimd_common_memory.hpp b/include/xsimd/arch/common/xsimd_common_memory.hpp index c8038334a..7a1ed73a3 100644 --- a/include/xsimd/arch/common/xsimd_common_memory.hpp +++ b/include/xsimd/arch/common/xsimd_common_memory.hpp @@ -12,13 +12,13 @@ #ifndef XSIMD_COMMON_MEMORY_HPP #define XSIMD_COMMON_MEMORY_HPP +#include "../../types/xsimd_batch_constant.hpp" +#include "./xsimd_common_details.hpp" + #include #include #include -#include "../../types/xsimd_batch_constant.hpp" -#include "./xsimd_common_details.hpp" - namespace xsimd { template diff --git a/include/xsimd/arch/common/xsimd_common_swizzle.hpp b/include/xsimd/arch/common/xsimd_common_swizzle.hpp index b5f82d53f..326340f92 100644 --- a/include/xsimd/arch/common/xsimd_common_swizzle.hpp +++ b/include/xsimd/arch/common/xsimd_common_swizzle.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_COMMON_SWIZZLE_HPP #define XSIMD_COMMON_SWIZZLE_HPP +#include "../../config/xsimd_macros.hpp" + #include #include #include -#include "../../config/xsimd_macros.hpp" - namespace xsimd { template diff --git a/include/xsimd/arch/common/xsimd_common_trigo.hpp b/include/xsimd/arch/common/xsimd_common_trigo.hpp index 1939b5196..d85511d2e 100644 --- a/include/xsimd/arch/common/xsimd_common_trigo.hpp +++ b/include/xsimd/arch/common/xsimd_common_trigo.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_COMMON_TRIGO_HPP #define XSIMD_COMMON_TRIGO_HPP -#include - #include "./xsimd_common_details.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx.hpp b/include/xsimd/arch/xsimd_avx.hpp index 305041f11..1ee0c5b89 100644 --- a/include/xsimd/arch/xsimd_avx.hpp +++ b/include/xsimd/arch/xsimd_avx.hpp @@ -13,13 +13,13 @@ #ifndef XSIMD_AVX_HPP #define XSIMD_AVX_HPP +#include "../types/xsimd_avx_register.hpp" +#include "../types/xsimd_batch_constant.hpp" + #include #include #include -#include "../types/xsimd_avx_register.hpp" -#include "../types/xsimd_batch_constant.hpp" - namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/xsimd_avx2.hpp b/include/xsimd/arch/xsimd_avx2.hpp index dd348d871..01c1fc295 100644 --- a/include/xsimd/arch/xsimd_avx2.hpp +++ b/include/xsimd/arch/xsimd_avx2.hpp @@ -12,14 +12,14 @@ #ifndef XSIMD_AVX2_HPP #define XSIMD_AVX2_HPP -#include -#include -#include - #include "../types/xsimd_avx2_register.hpp" #include "../types/xsimd_batch_constant.hpp" #include "./utils/shifts.hpp" +#include +#include +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx2_128.hpp b/include/xsimd/arch/xsimd_avx2_128.hpp index 7e8b0d05a..7a590c74f 100644 --- a/include/xsimd/arch/xsimd_avx2_128.hpp +++ b/include/xsimd/arch/xsimd_avx2_128.hpp @@ -13,11 +13,11 @@ #ifndef XSIMD_AVX2_128_HPP #define XSIMD_AVX2_128_HPP -#include - #include "../types/xsimd_avx2_register.hpp" #include "../types/xsimd_batch_constant.hpp" +#include + namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/xsimd_avx512bw.hpp b/include/xsimd/arch/xsimd_avx512bw.hpp index 28e2e98d6..1d99faf60 100644 --- a/include/xsimd/arch/xsimd_avx512bw.hpp +++ b/include/xsimd/arch/xsimd_avx512bw.hpp @@ -12,11 +12,11 @@ #ifndef XSIMD_AVX512BW_HPP #define XSIMD_AVX512BW_HPP +#include "../types/xsimd_avx512bw_register.hpp" + #include #include -#include "../types/xsimd_avx512bw_register.hpp" - namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx512f.hpp b/include/xsimd/arch/xsimd_avx512f.hpp index 79b1e0398..4f5945183 100644 --- a/include/xsimd/arch/xsimd_avx512f.hpp +++ b/include/xsimd/arch/xsimd_avx512f.hpp @@ -12,13 +12,13 @@ #ifndef XSIMD_AVX512F_HPP #define XSIMD_AVX512F_HPP +#include "../types/xsimd_avx512f_register.hpp" +#include "../types/xsimd_batch_constant.hpp" + #include #include #include -#include "../types/xsimd_avx512f_register.hpp" -#include "../types/xsimd_batch_constant.hpp" - namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx512vbmi.hpp b/include/xsimd/arch/xsimd_avx512vbmi.hpp index 2975de92c..099adb7e0 100644 --- a/include/xsimd/arch/xsimd_avx512vbmi.hpp +++ b/include/xsimd/arch/xsimd_avx512vbmi.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_AVX512VBMI_HPP #define XSIMD_AVX512VBMI_HPP -#include - #include "../types/xsimd_avx512vbmi_register.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx512vbmi2.hpp b/include/xsimd/arch/xsimd_avx512vbmi2.hpp index b8def2eed..705b8beaf 100644 --- a/include/xsimd/arch/xsimd_avx512vbmi2.hpp +++ b/include/xsimd/arch/xsimd_avx512vbmi2.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_AVX512VBMI2_HPP #define XSIMD_AVX512VBMI2_HPP -#include - #include "../types/xsimd_avx512vbmi2_register.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_avx_128.hpp b/include/xsimd/arch/xsimd_avx_128.hpp index af17568e1..46fc9acb7 100644 --- a/include/xsimd/arch/xsimd_avx_128.hpp +++ b/include/xsimd/arch/xsimd_avx_128.hpp @@ -13,11 +13,11 @@ #ifndef XSIMD_AVX_128_HPP #define XSIMD_AVX_128_HPP -#include - #include "../types/xsimd_avx_register.hpp" #include "../types/xsimd_batch_constant.hpp" +#include + namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/xsimd_constants.hpp b/include/xsimd/arch/xsimd_constants.hpp index 916cdf70d..00b719fc9 100644 --- a/include/xsimd/arch/xsimd_constants.hpp +++ b/include/xsimd/arch/xsimd_constants.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_NUMERICAL_CONSTANT_HPP #define XSIMD_NUMERICAL_CONSTANT_HPP -#include - #include "../types/xsimd_utils.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_emulated.hpp b/include/xsimd/arch/xsimd_emulated.hpp index 9eb2e2080..4426c543f 100644 --- a/include/xsimd/arch/xsimd_emulated.hpp +++ b/include/xsimd/arch/xsimd_emulated.hpp @@ -12,15 +12,14 @@ #ifndef XSIMD_EMULATED_HPP #define XSIMD_EMULATED_HPP -#include -#include -#include - #include "../arch/xsimd_scalar.hpp" - #include "../types/xsimd_emulated_register.hpp" #include "../types/xsimd_utils.hpp" +#include +#include +#include + namespace xsimd { template diff --git a/include/xsimd/arch/xsimd_isa.hpp b/include/xsimd/arch/xsimd_isa.hpp index e4af24da6..7975988aa 100644 --- a/include/xsimd/arch/xsimd_isa.hpp +++ b/include/xsimd/arch/xsimd_isa.hpp @@ -13,7 +13,6 @@ #define XSIMD_ISA_HPP #include "../config/xsimd_arch.hpp" - #include "./xsimd_common_fwd.hpp" #if XSIMD_WITH_EMULATED diff --git a/include/xsimd/arch/xsimd_neon.hpp b/include/xsimd/arch/xsimd_neon.hpp index 05200cd07..9033e0193 100644 --- a/include/xsimd/arch/xsimd_neon.hpp +++ b/include/xsimd/arch/xsimd_neon.hpp @@ -12,12 +12,6 @@ #ifndef XSIMD_NEON_HPP #define XSIMD_NEON_HPP -#include -#include -#include -#include -#include - #include "../types/xsimd_batch_fwd.hpp" #include "../types/xsimd_neon_register.hpp" #include "../types/xsimd_utils.hpp" @@ -26,6 +20,12 @@ #include "./common/xsimd_common_cast.hpp" #include "./xsimd_common_fwd.hpp" +#include +#include +#include +#include +#include + namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/xsimd_neon64.hpp b/include/xsimd/arch/xsimd_neon64.hpp index 7836ae037..92400e48b 100644 --- a/include/xsimd/arch/xsimd_neon64.hpp +++ b/include/xsimd/arch/xsimd_neon64.hpp @@ -12,16 +12,16 @@ #ifndef XSIMD_NEON64_HPP #define XSIMD_NEON64_HPP +#include "../types/xsimd_neon64_register.hpp" +#include "../types/xsimd_utils.hpp" +#include "./xsimd_neon.hpp" + #include #include #include #include #include -#include "../types/xsimd_neon64_register.hpp" -#include "../types/xsimd_utils.hpp" -#include "./xsimd_neon.hpp" - namespace xsimd { template diff --git a/include/xsimd/arch/xsimd_rvv.hpp b/include/xsimd/arch/xsimd_rvv.hpp index 3ae649fdb..22653984b 100644 --- a/include/xsimd/arch/xsimd_rvv.hpp +++ b/include/xsimd/arch/xsimd_rvv.hpp @@ -10,9 +10,6 @@ #ifndef XSIMD_RVV_HPP #define XSIMD_RVV_HPP -#include -#include - #include "../config/xsimd_macros.hpp" #include "../types/xsimd_batch_constant.hpp" #include "../types/xsimd_rvv_register.hpp" @@ -20,6 +17,9 @@ #include "../utils/xsimd_type_traits.hpp" #include "./xsimd_constants.hpp" +#include +#include + // This set of macros allows the synthesis of identifiers using a template and // variable macro arguments. A single template can then be used by multiple // macros, or multiple instances of a macro to define the same logic for diff --git a/include/xsimd/arch/xsimd_scalar.hpp b/include/xsimd/arch/xsimd_scalar.hpp index 5443d69f6..9fbf38904 100644 --- a/include/xsimd/arch/xsimd_scalar.hpp +++ b/include/xsimd/arch/xsimd_scalar.hpp @@ -12,6 +12,8 @@ #ifndef XSIMD_SCALAR_HPP #define XSIMD_SCALAR_HPP +#include "../config/xsimd_macros.hpp" + #include #include #include @@ -20,8 +22,6 @@ #include #include -#include "../config/xsimd_macros.hpp" - #ifdef XSIMD_ENABLE_XTL_COMPLEX #include "xtl/xcomplex.hpp" #endif diff --git a/include/xsimd/arch/xsimd_sse2.hpp b/include/xsimd/arch/xsimd_sse2.hpp index c190b753c..efcae09a7 100644 --- a/include/xsimd/arch/xsimd_sse2.hpp +++ b/include/xsimd/arch/xsimd_sse2.hpp @@ -12,14 +12,14 @@ #ifndef XSIMD_SSE2_HPP #define XSIMD_SSE2_HPP -#include -#include -#include - #include "../types/xsimd_batch_constant.hpp" #include "../types/xsimd_sse2_register.hpp" #include "./utils/shifts.hpp" +#include +#include +#include + namespace xsimd { template diff --git a/include/xsimd/arch/xsimd_sse3.hpp b/include/xsimd/arch/xsimd_sse3.hpp index b65d430b2..a860e4d61 100644 --- a/include/xsimd/arch/xsimd_sse3.hpp +++ b/include/xsimd/arch/xsimd_sse3.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_SSE3_HPP #define XSIMD_SSE3_HPP -#include - #include "../types/xsimd_sse3_register.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_sse4_1.hpp b/include/xsimd/arch/xsimd_sse4_1.hpp index 4d544c11c..250d07075 100644 --- a/include/xsimd/arch/xsimd_sse4_1.hpp +++ b/include/xsimd/arch/xsimd_sse4_1.hpp @@ -12,11 +12,11 @@ #ifndef XSIMD_SSE4_1_HPP #define XSIMD_SSE4_1_HPP -#include - #include "../types/xsimd_sse4_1_register.hpp" #include "./common/xsimd_common_cast.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_sse4_2.hpp b/include/xsimd/arch/xsimd_sse4_2.hpp index 5265182f9..1619cf70a 100644 --- a/include/xsimd/arch/xsimd_sse4_2.hpp +++ b/include/xsimd/arch/xsimd_sse4_2.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_SSE4_2_HPP #define XSIMD_SSE4_2_HPP -#include - #include "../types/xsimd_sse4_2_register.hpp" +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_ssse3.hpp b/include/xsimd/arch/xsimd_ssse3.hpp index 85e03288d..bae3fb9c4 100644 --- a/include/xsimd/arch/xsimd_ssse3.hpp +++ b/include/xsimd/arch/xsimd_ssse3.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_SSSE3_HPP #define XSIMD_SSSE3_HPP -#include -#include - #include "../types/xsimd_ssse3_register.hpp" #include "../types/xsimd_utils.hpp" +#include +#include + namespace xsimd { diff --git a/include/xsimd/arch/xsimd_sve.hpp b/include/xsimd/arch/xsimd_sve.hpp index c15404dd9..8092015db 100644 --- a/include/xsimd/arch/xsimd_sve.hpp +++ b/include/xsimd/arch/xsimd_sve.hpp @@ -13,13 +13,13 @@ #ifndef XSIMD_SVE_HPP #define XSIMD_SVE_HPP -#include -#include - #include "../config/xsimd_config.hpp" #include "../config/xsimd_macros.hpp" #include "../types/xsimd_sve_register.hpp" +#include +#include + // Define a inline namespace with the explicit SVE vector size to avoid ODR violation // When dynamically dispatching between different SVE sizes. // While most code is safe from ODR violation as the size is already encoded in the diff --git a/include/xsimd/arch/xsimd_vsx.hpp b/include/xsimd/arch/xsimd_vsx.hpp index 19c0761dc..4a184136d 100644 --- a/include/xsimd/arch/xsimd_vsx.hpp +++ b/include/xsimd/arch/xsimd_vsx.hpp @@ -12,15 +12,15 @@ #ifndef XSIMD_VSX_HPP #define XSIMD_VSX_HPP -#include -#include - -#include - #include "../types/xsimd_batch_fwd.hpp" #include "../types/xsimd_vsx_register.hpp" #include "./common/xsimd_common_cast.hpp" +#include + +#include +#include + namespace xsimd { template diff --git a/include/xsimd/arch/xsimd_vxe.hpp b/include/xsimd/arch/xsimd_vxe.hpp index b6b5f78a0..c419daa52 100644 --- a/include/xsimd/arch/xsimd_vxe.hpp +++ b/include/xsimd/arch/xsimd_vxe.hpp @@ -14,10 +14,10 @@ #ifndef XSIMD_VXE_HPP #define XSIMD_VXE_HPP -#include - #include "../types/xsimd_vxe_register.hpp" +#include + namespace xsimd { namespace kernel diff --git a/include/xsimd/arch/xsimd_wasm.hpp b/include/xsimd/arch/xsimd_wasm.hpp index 9e437dfb1..b657bbd6b 100644 --- a/include/xsimd/arch/xsimd_wasm.hpp +++ b/include/xsimd/arch/xsimd_wasm.hpp @@ -13,11 +13,11 @@ #ifndef XSIMD_WASM_HPP #define XSIMD_WASM_HPP -#include - #include "../types/xsimd_wasm_register.hpp" #include "./common/xsimd_common_cast.hpp" +#include + namespace xsimd { template diff --git a/include/xsimd/config/xsimd_arch.hpp b/include/xsimd/config/xsimd_arch.hpp index 5c5f9a5fc..85b7eebf1 100644 --- a/include/xsimd/config/xsimd_arch.hpp +++ b/include/xsimd/config/xsimd_arch.hpp @@ -12,14 +12,14 @@ #ifndef XSIMD_ARCH_HPP #define XSIMD_ARCH_HPP -#include -#include -#include - #include "../types/xsimd_all_registers.hpp" #include "./xsimd_config.hpp" #include "./xsimd_cpuid.hpp" +#include +#include +#include + namespace xsimd { diff --git a/include/xsimd/config/xsimd_cpu_features_arm.hpp b/include/xsimd/config/xsimd_cpu_features_arm.hpp index 3cf62dd37..57f1c56e3 100644 --- a/include/xsimd/config/xsimd_cpu_features_arm.hpp +++ b/include/xsimd/config/xsimd_cpu_features_arm.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_CPU_FEATURES_ARM_HPP #define XSIMD_CPU_FEATURES_ARM_HPP -#include -#include - #include "./xsimd_config.hpp" #include "./xsimd_getauxval.hpp" +#include +#include + #if XSIMD_TARGET_ARM && XSIMD_HAVE_LINUX_GETAUXVAL // HWCAP_XXX masks to use on getauxval results. // Header does not exists on all architectures and masks are architecture diff --git a/include/xsimd/config/xsimd_cpu_features_riscv.hpp b/include/xsimd/config/xsimd_cpu_features_riscv.hpp index 45475d6ca..d1d2ba7d6 100644 --- a/include/xsimd/config/xsimd_cpu_features_riscv.hpp +++ b/include/xsimd/config/xsimd_cpu_features_riscv.hpp @@ -12,12 +12,12 @@ #ifndef XSIMD_CPU_FEATURES_RISCV_HPP #define XSIMD_CPU_FEATURES_RISCV_HPP -#include -#include - #include "./xsimd_config.hpp" #include "./xsimd_getauxval.hpp" +#include +#include + #if XSIMD_TARGET_RISCV && XSIMD_HAVE_LINUX_GETAUXVAL // HWCAP_XXX masks to use on getauxval results. // Header does not exists on all architectures and masks are architecture diff --git a/include/xsimd/memory/xsimd_aligned_allocator.hpp b/include/xsimd/memory/xsimd_aligned_allocator.hpp index f6f446ac6..ee13e1dda 100644 --- a/include/xsimd/memory/xsimd_aligned_allocator.hpp +++ b/include/xsimd/memory/xsimd_aligned_allocator.hpp @@ -21,11 +21,11 @@ #include #endif +#include "../config/xsimd_arch.hpp" + #include #include -#include "../config/xsimd_arch.hpp" - namespace xsimd { diff --git a/include/xsimd/types/xsimd_all_registers.hpp b/include/xsimd/types/xsimd_all_registers.hpp index af693132f..df7149d1c 100644 --- a/include/xsimd/types/xsimd_all_registers.hpp +++ b/include/xsimd/types/xsimd_all_registers.hpp @@ -9,48 +9,36 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include "./xsimd_fma3_sse_register.hpp" -#include "./xsimd_fma4_register.hpp" -#include "./xsimd_sse2_register.hpp" -#include "./xsimd_sse3_register.hpp" -#include "./xsimd_sse4_1_register.hpp" -#include "./xsimd_sse4_2_register.hpp" - #include "./xsimd_avx2_register.hpp" -#include "./xsimd_avx_register.hpp" -#include "./xsimd_avxvnni_register.hpp" -#include "./xsimd_fma3_avx2_register.hpp" -#include "./xsimd_fma3_avx_register.hpp" - -#include "./xsimd_avx512vnni_avx512bw_register.hpp" -#include "./xsimd_avx512vnni_avx512vbmi2_register.hpp" - -#include "./xsimd_avx512ifma_register.hpp" -#include "./xsimd_avx512vbmi2_register.hpp" -#include "./xsimd_avx512vbmi_register.hpp" - -#include "./xsimd_avx512er_register.hpp" -#include "./xsimd_avx512pf_register.hpp" - #include "./xsimd_avx512bw_register.hpp" #include "./xsimd_avx512cd_register.hpp" #include "./xsimd_avx512dq_register.hpp" +#include "./xsimd_avx512er_register.hpp" #include "./xsimd_avx512f_register.hpp" - +#include "./xsimd_avx512ifma_register.hpp" +#include "./xsimd_avx512pf_register.hpp" +#include "./xsimd_avx512vbmi2_register.hpp" +#include "./xsimd_avx512vbmi_register.hpp" +#include "./xsimd_avx512vnni_avx512bw_register.hpp" +#include "./xsimd_avx512vnni_avx512vbmi2_register.hpp" +#include "./xsimd_avx_register.hpp" +#include "./xsimd_avxvnni_register.hpp" +#include "./xsimd_fma3_avx2_register.hpp" +#include "./xsimd_fma3_avx_register.hpp" +#include "./xsimd_fma3_sse_register.hpp" +#include "./xsimd_fma4_register.hpp" #include "./xsimd_i8mm_neon64_register.hpp" - #include "./xsimd_neon64_register.hpp" #include "./xsimd_neon_register.hpp" - -#include "./xsimd_sve_register.hpp" - #include "./xsimd_rvv_register.hpp" - -#include "./xsimd_wasm_register.hpp" - +#include "./xsimd_sse2_register.hpp" +#include "./xsimd_sse3_register.hpp" +#include "./xsimd_sse4_1_register.hpp" +#include "./xsimd_sse4_2_register.hpp" +#include "./xsimd_sve_register.hpp" #include "./xsimd_vsx_register.hpp" - #include "./xsimd_vxe_register.hpp" +#include "./xsimd_wasm_register.hpp" #if XSIMD_WITH_EMULATED #include "./xsimd_emulated_register.hpp" diff --git a/include/xsimd/types/xsimd_api.hpp b/include/xsimd/types/xsimd_api.hpp index 6a7206116..e1d11da5b 100644 --- a/include/xsimd/types/xsimd_api.hpp +++ b/include/xsimd/types/xsimd_api.hpp @@ -12,16 +12,16 @@ #ifndef XSIMD_API_HPP #define XSIMD_API_HPP -#include -#include -#include -#include - #include "../arch/xsimd_isa.hpp" #include "../types/xsimd_batch.hpp" #include "../types/xsimd_traits.hpp" #include "../utils/xsimd_type_traits.hpp" +#include +#include +#include +#include + namespace xsimd { /** diff --git a/include/xsimd/types/xsimd_batch.hpp b/include/xsimd/types/xsimd_batch.hpp index dadf8421d..b9113dc19 100644 --- a/include/xsimd/types/xsimd_batch.hpp +++ b/include/xsimd/types/xsimd_batch.hpp @@ -12,9 +12,6 @@ #ifndef XSIMD_BATCH_HPP #define XSIMD_BATCH_HPP -#include -#include - #include "../config/xsimd_arch.hpp" #include "../config/xsimd_config.hpp" #include "../config/xsimd_macros.hpp" @@ -22,6 +19,9 @@ #include "./xsimd_batch_fwd.hpp" #include "./xsimd_utils.hpp" +#include +#include + namespace xsimd { namespace types diff --git a/include/xsimd/types/xsimd_batch_constant.hpp b/include/xsimd/types/xsimd_batch_constant.hpp index 36f05bb6e..edecee3c3 100644 --- a/include/xsimd/types/xsimd_batch_constant.hpp +++ b/include/xsimd/types/xsimd_batch_constant.hpp @@ -12,14 +12,14 @@ #ifndef XSIMD_BATCH_CONSTANT_HPP #define XSIMD_BATCH_CONSTANT_HPP -#include -#include -#include - #include "../config/xsimd_config.hpp" #include "./xsimd_batch.hpp" #include "./xsimd_utils.hpp" +#include +#include +#include + namespace xsimd { /** diff --git a/include/xsimd/types/xsimd_common_arch.hpp b/include/xsimd/types/xsimd_common_arch.hpp index a33c868ea..8f92ad4dc 100644 --- a/include/xsimd/types/xsimd_common_arch.hpp +++ b/include/xsimd/types/xsimd_common_arch.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_COMMON_ARCH_HPP #define XSIMD_COMMON_ARCH_HPP -#include - #include "../config/xsimd_config.hpp" +#include + /** * @defgroup architectures Architecture description * */ diff --git a/include/xsimd/types/xsimd_register.hpp b/include/xsimd/types/xsimd_register.hpp index bb58b9304..e4f9b1ddc 100644 --- a/include/xsimd/types/xsimd_register.hpp +++ b/include/xsimd/types/xsimd_register.hpp @@ -12,10 +12,10 @@ #ifndef XSIMD_REGISTER_HPP #define XSIMD_REGISTER_HPP -#include - #include "../config/xsimd_macros.hpp" +#include + namespace xsimd { namespace types diff --git a/include/xsimd/xsimd.hpp b/include/xsimd/xsimd.hpp index 351f4935d..705dce71b 100644 --- a/include/xsimd/xsimd.hpp +++ b/include/xsimd/xsimd.hpp @@ -12,10 +12,9 @@ #ifndef XSIMD_HPP #define XSIMD_HPP +#include "./arch/xsimd_scalar.hpp" #include "./config/xsimd_config.hpp" #include "./config/xsimd_macros.hpp" - -#include "./arch/xsimd_scalar.hpp" #include "./memory/xsimd_aligned_allocator.hpp" #include "./types/xsimd_batch_fwd.hpp" From 2f372af652dc502ac9649a95a6c645b6e5e6eea7 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 13 May 2026 14:44:35 +0200 Subject: [PATCH 3/5] Clean header in benchmarks and tests --- benchmark/main.cpp | 4 ++-- benchmark/xsimd_benchmark.hpp | 1 + examples/mandelbrot.cpp | 8 ++++---- test/doc/explicit_use_of_an_instruction_set.cpp | 1 + test/doc/explicit_use_of_an_instruction_set_mean.cpp | 1 + ...explicit_use_of_an_instruction_set_mean_aligned.cpp | 1 + ...use_of_an_instruction_set_mean_arch_independent.cpp | 1 + ...cit_use_of_an_instruction_set_mean_tag_dispatch.cpp | 1 + test/main.cpp | 6 +++--- test/test_api.cpp | 4 ++-- test/test_arch.cpp | 6 +++--- test/test_batch.cpp | 4 ++-- test/test_batch_bool.cpp | 4 ++-- test/test_batch_complex.cpp | 4 ++-- test/test_batch_constant.cpp | 4 ++-- test/test_cpu_features.cpp | 8 ++++---- test/test_custom_default_arch.cpp | 3 ++- test/test_gnu_source.cpp | 2 +- test/test_load_store.cpp | 4 ++-- test/test_memory.cpp | 10 +++++----- test/test_shuffle.cpp | 4 ++-- test/test_utils.hpp | 4 ++-- test/test_utils_bits.cpp | 4 ++-- test/test_xsimd_api.cpp | 2 +- 24 files changed, 49 insertions(+), 42 deletions(-) diff --git a/benchmark/main.cpp b/benchmark/main.cpp index 9c9cb0633..e5ef24365 100644 --- a/benchmark/main.cpp +++ b/benchmark/main.cpp @@ -9,12 +9,12 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ +#include "xsimd_benchmark.hpp" + #include #include #include -#include "xsimd_benchmark.hpp" - void benchmark_operation() { // std::size_t size = 9984; diff --git a/benchmark/xsimd_benchmark.hpp b/benchmark/xsimd_benchmark.hpp index 022b6672d..3f48cff40 100644 --- a/benchmark/xsimd_benchmark.hpp +++ b/benchmark/xsimd_benchmark.hpp @@ -14,6 +14,7 @@ #include "xsimd/arch/xsimd_scalar.hpp" #include "xsimd/xsimd.hpp" + #include #include #include diff --git a/examples/mandelbrot.cpp b/examples/mandelbrot.cpp index 9a0d80e7a..0e001689f 100644 --- a/examples/mandelbrot.cpp +++ b/examples/mandelbrot.cpp @@ -13,15 +13,15 @@ // https://github.com/ospray/tsimd/blob/master/benchmarks/mandelbrot.cpp // Author Jefferson Amstutz / intel +#include "pico_bench.hpp" + +#include + #include #include #include #include -#include "pico_bench.hpp" - -#include - // helper function to write the rendered image as PPM file inline void writePPM(const std::string& fileName, const int sizeX, diff --git a/test/doc/explicit_use_of_an_instruction_set.cpp b/test/doc/explicit_use_of_an_instruction_set.cpp index ab3d0e7e7..4d83cf743 100644 --- a/test/doc/explicit_use_of_an_instruction_set.cpp +++ b/test/doc/explicit_use_of_an_instruction_set.cpp @@ -1,4 +1,5 @@ #include "xsimd/xsimd.hpp" + #include namespace xs = xsimd; diff --git a/test/doc/explicit_use_of_an_instruction_set_mean.cpp b/test/doc/explicit_use_of_an_instruction_set_mean.cpp index 6e68bac71..4c812b6f7 100644 --- a/test/doc/explicit_use_of_an_instruction_set_mean.cpp +++ b/test/doc/explicit_use_of_an_instruction_set_mean.cpp @@ -1,4 +1,5 @@ #include "xsimd/xsimd.hpp" + #include #include diff --git a/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp b/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp index 12a07bb2b..d81b055e2 100644 --- a/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp +++ b/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp @@ -1,4 +1,5 @@ #include "xsimd/xsimd.hpp" + #include #include diff --git a/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp b/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp index cb9ccc9eb..76eab6d7e 100644 --- a/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp +++ b/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp @@ -1,4 +1,5 @@ #include "xsimd/xsimd.hpp" + #include struct mean diff --git a/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp b/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp index 3ab00e48f..af40b8394 100644 --- a/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp +++ b/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp @@ -1,4 +1,5 @@ #include "xsimd/xsimd.hpp" + #include template diff --git a/test/main.cpp b/test/main.cpp index ef6681811..93b1ae371 100644 --- a/test/main.cpp +++ b/test/main.cpp @@ -10,11 +10,11 @@ ****************************************************************************/ #ifndef EMSCRIPTEN #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN -#include "doctest/doctest.h" +#include #else #define DOCTEST_CONFIG_IMPLEMENT -#include "doctest/doctest.h" +#include #include int run_tests() @@ -28,4 +28,4 @@ EMSCRIPTEN_BINDINGS(my_module) emscripten::function("run_tests", &run_tests); } -#endif \ No newline at end of file +#endif diff --git a/test/test_api.cpp b/test/test_api.cpp index 73c58e739..20c887a36 100644 --- a/test/test_api.cpp +++ b/test/test_api.cpp @@ -12,12 +12,12 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE +#include "test_utils.hpp" + #include #include #include -#include "test_utils.hpp" - template struct xsimd_api_test { diff --git a/test/test_arch.cpp b/test/test_arch.cpp index 621679ff4..d2d0df249 100644 --- a/test/test_arch.cpp +++ b/test/test_arch.cpp @@ -12,12 +12,12 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE -#include -#include - #include "test_sum.hpp" #include "test_utils.hpp" +#include +#include + #ifndef XSIMD_DEFAULT_ARCH static_assert(xsimd::default_arch::supported(), "default arch must be supported"); static_assert(std::is_same::value, "default arch is the best available"); diff --git a/test/test_batch.cpp b/test/test_batch.cpp index 403bf00df..0c3e87a77 100644 --- a/test/test_batch.cpp +++ b/test/test_batch.cpp @@ -12,13 +12,13 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE +#include "test_utils.hpp" + #include #include #include #include -#include "test_utils.hpp" - using namespace std::placeholders; template diff --git a/test/test_batch_bool.cpp b/test/test_batch_bool.cpp index a7cdec762..a1dcf9c7e 100644 --- a/test/test_batch_bool.cpp +++ b/test/test_batch_bool.cpp @@ -12,13 +12,13 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE +#include "test_utils.hpp" + #include #include #include #include -#include "test_utils.hpp" - namespace xsimd { diff --git a/test/test_batch_complex.cpp b/test/test_batch_complex.cpp index 8e4787c6c..9db85cef6 100644 --- a/test/test_batch_complex.cpp +++ b/test/test_batch_complex.cpp @@ -12,12 +12,12 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE +#include "test_utils.hpp" + #include #include #include -#include "test_utils.hpp" - using namespace std::placeholders; template diff --git a/test/test_batch_constant.cpp b/test/test_batch_constant.cpp index 00fd36203..9877cd17d 100644 --- a/test/test_batch_constant.cpp +++ b/test/test_batch_constant.cpp @@ -9,9 +9,9 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include - #include "xsimd/xsimd.hpp" + +#include #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE #include "test_utils.hpp" diff --git a/test/test_cpu_features.cpp b/test/test_cpu_features.cpp index 92d3c7661..b0a7bc79f 100644 --- a/test/test_cpu_features.cpp +++ b/test/test_cpu_features.cpp @@ -9,15 +9,15 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ +#include "xsimd/xsimd.hpp" + +#include + #include #include #include #include -#include - -#include "xsimd/xsimd.hpp" - #define CHECK_IMPLICATION(a, b) CHECK_UNARY(!(a) || (b)) namespace detail diff --git a/test/test_custom_default_arch.cpp b/test/test_custom_default_arch.cpp index 106e26762..3ae1f2aea 100644 --- a/test/test_custom_default_arch.cpp +++ b/test/test_custom_default_arch.cpp @@ -11,10 +11,11 @@ #ifdef __STSE2__ #define XSIMD_DEFAULT_ARCH xsimd::sse2 -#include "xsimd/xsimd.hpp" #include "test_utils.hpp" +#include "xsimd/xsimd.hpp" + // Could be different than sse2 if we compile for other architecture avx static_assert(std::is_same::value, "default arch correctly hooked"); diff --git a/test/test_gnu_source.cpp b/test/test_gnu_source.cpp index 40303c921..e13d7671b 100644 --- a/test/test_gnu_source.cpp +++ b/test/test_gnu_source.cpp @@ -17,7 +17,7 @@ #endif #include "xsimd/xsimd.hpp" -#include "doctest/doctest.h" +#include TEST_CASE("[GNU_SOURCE support]") { diff --git a/test/test_load_store.cpp b/test/test_load_store.cpp index a5266eeb3..c480f2adb 100644 --- a/test/test_load_store.cpp +++ b/test/test_load_store.cpp @@ -12,12 +12,12 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE +#include "test_utils.hpp" + #include #include #include -#include "test_utils.hpp" - template struct load_store_test { diff --git a/test/test_memory.cpp b/test/test_memory.cpp index f582d59bd..1baebb533 100644 --- a/test/test_memory.cpp +++ b/test/test_memory.cpp @@ -12,14 +12,14 @@ #include "xsimd/xsimd.hpp" #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE -#include -#include - -#include "doctest/doctest.h" - #include "xsimd/memory/xsimd_aligned_allocator.hpp" #include "xsimd/memory/xsimd_alignment.hpp" +#include + +#include +#include + struct mock_container { }; diff --git a/test/test_shuffle.cpp b/test/test_shuffle.cpp index b287e60c5..b02742dfd 100644 --- a/test/test_shuffle.cpp +++ b/test/test_shuffle.cpp @@ -9,9 +9,9 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -#include - #include "xsimd/xsimd.hpp" + +#include #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE #include "test_utils.hpp" diff --git a/test/test_utils.hpp b/test/test_utils.hpp index b3896c191..caa8b8f8e 100644 --- a/test/test_utils.hpp +++ b/test/test_utils.hpp @@ -11,6 +11,8 @@ #include "xsimd/xsimd.hpp" +#include + #include #include #include @@ -21,8 +23,6 @@ #include #include -#include "doctest/doctest.h" - #ifndef XSIMD_TEST_UTILS_HPP #define XSIMD_TEST_UTILS_HPP diff --git a/test/test_utils_bits.cpp b/test/test_utils_bits.cpp index e88018559..c1ac5af1b 100644 --- a/test/test_utils_bits.cpp +++ b/test/test_utils_bits.cpp @@ -9,11 +9,11 @@ * The full license is in the file LICENSE, distributed with this software. * ***************************************************************************/ -#include +#include "xsimd/utils/bits.hpp" #include -#include "xsimd/utils/bits.hpp" +#include TEST_CASE("[utils::make_bit_mask] single bit") { diff --git a/test/test_xsimd_api.cpp b/test/test_xsimd_api.cpp index ad72fbd67..454c360c9 100644 --- a/test/test_xsimd_api.cpp +++ b/test/test_xsimd_api.cpp @@ -12,7 +12,7 @@ #include "xsimd/types/xsimd_utils.hpp" #include "xsimd/xsimd.hpp" -#include "doctest/doctest.h" +#include template struct scalar_type From e89544280ebfd1d59458cc8b642016f22d96146f Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 13 May 2026 15:04:40 +0200 Subject: [PATCH 4/5] Add header groups to clang-format --- .clang-format | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.clang-format b/.clang-format index d0da08381..08011e6bc 100644 --- a/.clang-format +++ b/.clang-format @@ -4,5 +4,24 @@ AlignAfterOpenBracket: Align AlignConsecutiveDeclarations: 'false' BreakBeforeBraces: Allman NamespaceIndentation: All +IncludeBlocks: Regroup +# First regex to match classifies the header into a group. +# Group are ordered in the source code by increasing priority. +IncludeCategories: + # Standard headers + - Regex: <[^\.]+> + Priority: 4 + # Third party dependencies (prefer angle bracket over quotes) + - Regex: <.+\..+> + Priority: 3 + # xsimd absolute headers (e.g. in tests) + - Regex: '["<]xsimd/.+[">]' + Priority: 2 + # Relative header from project + - Regex: '"\.+.*"' + Priority: 1 + # Not quoted header (anything else, avoid) + - Regex: '".*"' + Priority: 0 ... From ed1d4198ed1c96637869ee2d6803e7f82a6f9743 Mon Sep 17 00:00:00 2001 From: AntoinePrv Date: Wed, 13 May 2026 15:10:45 +0200 Subject: [PATCH 5/5] Add missing headers --- include/xsimd/arch/xsimd_scalar.hpp | 2 +- include/xsimd/types/xsimd_emulated_register.hpp | 10 +++++++++- include/xsimd/types/xsimd_utils.hpp | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/xsimd/arch/xsimd_scalar.hpp b/include/xsimd/arch/xsimd_scalar.hpp index 9fbf38904..28d0ba21e 100644 --- a/include/xsimd/arch/xsimd_scalar.hpp +++ b/include/xsimd/arch/xsimd_scalar.hpp @@ -23,7 +23,7 @@ #include #ifdef XSIMD_ENABLE_XTL_COMPLEX -#include "xtl/xcomplex.hpp" +#include #endif #ifdef __APPLE__ diff --git a/include/xsimd/types/xsimd_emulated_register.hpp b/include/xsimd/types/xsimd_emulated_register.hpp index 306ca0cf4..6bfc04e94 100644 --- a/include/xsimd/types/xsimd_emulated_register.hpp +++ b/include/xsimd/types/xsimd_emulated_register.hpp @@ -15,6 +15,14 @@ #include "./xsimd_common_arch.hpp" #include "./xsimd_register.hpp" +#ifdef XSIMD_ENABLE_XTL_COMPLEX +#include +#endif + +#include +#include +#include + namespace xsimd { /** @@ -70,7 +78,7 @@ namespace xsimd }; #ifdef XSIMD_ENABLE_XTL_COMPLEX template - struct has_simd_register, emulated> : std::true_type + struct has_simd_register, emulated> : std::true_type { }; #endif diff --git a/include/xsimd/types/xsimd_utils.hpp b/include/xsimd/types/xsimd_utils.hpp index 6af62c1a0..5dbab8551 100644 --- a/include/xsimd/types/xsimd_utils.hpp +++ b/include/xsimd/types/xsimd_utils.hpp @@ -20,7 +20,7 @@ #include #ifdef XSIMD_ENABLE_XTL_COMPLEX -#include "xtl/xcomplex.hpp" +#include #endif #include "./xsimd_batch_fwd.hpp"