On Mon, Jul 20, 2026 at 07:43:03PM -0400,  wrote:
> pinsrq is an SSE4.1 instruction.  Debian amd64 is not supposed to require
> those, so probably numpy needs to be told explicitly at compile time to
> stick with SSE2.

Building numpy on my machine I see:

-DNPY_HAVE_X86_V2 -DNPY_HAVE_SSE -DNPY_HAVE_SSE2 -DNPY_HAVE_SSE3 
-DNPY_HAVE_SSSE3 -DNPY_HAVE_SSE41 -DNPY_HAVE_SSE42 -DNPY_HAVE_POPCNT 
-DNPY_HAVE_LAHF -DNPY_HAVE_CX16 -DNPY_HAVE_X86_V3 -DNPY_HAVE_AVX 
-DNPY_HAVE_AVX2 -DNPY_HAVE_FMA3 -DNPY_HAVE_BMI -DNPY_HAVE_BMI2 -DNPY_HAVE_LZCNT 
-DNPY_HAVE_F16C -DNPY_HAVE_MOVBE -DNPY_HAVE_X86_V4 -DNPY_HAVE_AVX512F 
-DNPY_HAVE_AVX512CD -DNPY_HAVE_AVX512VL -DNPY_HAVE_AVX512BW -DNPY_HAVE_AVX512DQ 
-DNPY_HAVE_AVX512_SKX -DNPY_HAVE_AVX512F_REDUCE -DNPY_HAVE_AVX512BW_MASK 
-DNPY_HAVE_AVX512DQ_MASK -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mpopcnt 
-msahf -mcx16 -DHWY_WANT_SSE4 -DHWY_DISABLE_PCLMUL_AES -mavx -mavx2 -mfma -mbmi 
-mbmi2 -mlzcnt -mf16c -mmovbe -mavx512f -mavx512cd -mavx512vl -mavx512bw 
-mavx512dq -DNPY_MTARGETS_CURRENT=X86_V4

So that looks problematic.

Numpy 2.4.0 raised the default baseline to X86_V2 which certainly makes
sense for what it is doing.  It says you can drop the baseline back
to none, although that the older SIMD is no longer being maintained.
Not sure what the correct thing to do would be?  As it is, it is no
longer compatible with x86_64 v1, but if you force it back, you might
loose the advantages of all the newer models and you would be using no
longer supported code.

-- 
Len Sorensen

Reply via email to