I was searching on the web to find a proper solution, without much success. So I hope one of you know something about it: Is there any way to detect the "Intel Bit Manipulation Instruction Sets 2" (BMI2) compile time? I want to make some conditional thing based on the availability of it.
With GCC you can check for the __BMI2__
macro. This macro will be defined if the target supports BMI2 (e.g. -mbmi2
,-march=haswell
). This is the macro that the instrinsic's headers (x86intrin.h
, bmi2intrin.h
) uses to check for BMI2 at compile time.
For runtime checks, __builtin_cpu_init()
and __builtin_cpu_supports("bmi2")
can be used in modern GCC (tested in GCC 5.1, 4.9 and lower doesn't have it).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With