You may have noticed that release arctifacts may look like
- v1.4.2-release-all-x86_64-v2-linux-gnu-tuwunel.deb
and wondered what that x86_64-v2 means?
The base 64-bit processors had the general instruction set (the baseline was mostly fixed around 2003).
When a new base instruction set came out, around 2008, it included SSE3, SSE4.1, and SSE4.2 and was called x86-64v2 (around 2008), suporting SIMD Extensions 3 (SSE3), SSE4.1 and 4.2.
x86-64-v3 (around 2013) supports AVX2, MOVBE and FMA (among others). This is the version QEMU (as of v7.2) supports.
x86-64-v4 (around 2017) supports AVX-512.
(For the details see Microarchitecture levels in Wikipedia.)
Checking your CPU
You may use /lib64/ld-linux-x86-64.so.2 --help command (since glibc v2.33) to print the levels supported by your system, at the end (after the title "Subdirectories of glibc-hwcaps directories, in priority order", witch "supported" tag).
Otherwise you may need to check the feature flags supported in /proc/cpuinfo.
Release matching
Most of the recent consumer CPUs support x86-64-v3, which is generally a safe bet, but if you have an older processor or emulator, you may want to use v1 or v2 code.