I'd like to know whether binaries use (are compiled for) special instruction sets like SSE 4.1/4.2, AVX, F16C or not. How can I find out whether a binary in a package uses certain instruction sets?
I know that I may enable such instructions using configure
switches when compiling packages by hand, but when using precompiled packages from the Debian repository there must be a default.
Probably binaries are not compiled with too specific instruction sets because they could not be used on any system or, depending on the binary, they are compiled with alternative subroutines that "emulate" the processing with basic instructions to support CPUs lacking such features.
I know that I could look into the rules
file of a Debian source package but I'm interested if there's an easier way to do this.
- Are the CPU instructions a x86-64 binary uses very limited?
- May packages use quite specific instruction sets, may they have fallbacks using more primitive instructions?