From 0c090aba04d4366511c490d0a3b4fef33ce2fce1 Mon Sep 17 00:00:00 2001 From: Antony Chan Date: Sat, 23 May 2026 14:08:12 -0700 Subject: [PATCH] Enable autovectorization for single-thread algorithms When the build system detects the native build environment, i.e. compile and run PSF simulation on the same machine, enable compiler option `-fmarch=native` so that the compiler can detect the CPU's vectorization capabilities. Reference: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html --- microsc-psf/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/microsc-psf/meson.build b/microsc-psf/meson.build index 1643e69..89174ef 100644 --- a/microsc-psf/meson.build +++ b/microsc-psf/meson.build @@ -1,5 +1,7 @@ microsc_psf_inc = include_directories('inc') +enable_autovectorization = meson.is_cross_build() ? '' : '-march=native' + if get_option('use_eigen') warning('Solving linear least squares with Eigen3, not Lapack') @@ -10,6 +12,7 @@ if get_option('use_eigen') eigen_solver_lib = static_library('eigen_solver', sources: 'src/linsolver.cpp', include_directories: include_directories('inc'), + cpp_args: enable_autovectorization, dependencies: [ dependency('eigen', fallback: ['eigen', 'eigen_dep']), armadillo_dep, @@ -44,6 +47,7 @@ microsc_psf_lib = static_library('microsc-psf', cpp_args: [ '-D' + bessel_source, use_lapack_args, + enable_autovectorization, ], include_directories: [ microsc_psf_inc,