1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/usr/bin/env bash
function report_cpu_flags() {
local flag
for flag; do
## Note, it's important to keep a trailing space
case " ${flags} " in
*" ${flag} "*)
echo " ${flag} Found"
;;
*)
echo " ${flag} NOT Found"
;;
esac
done
}
data=$(< /proc/cpuinfo)
flags=""
flags=$(grep "^flags[[:space:]]*:" <<< "${data}" | head -n 1)
flags="${flags#*:}"
flags="${flags## }"
echo "${flags}"
echo "x86_64-v1"
report_cpu_flags lm cmov cx8 fpu fxsr mmx syscall sse2
echo "x86_64-v2"
report_cpu_flags cx16 lahf_lm popcnt sse4_1 sse4_2 ssse3
echo "x86_64-v3"
report_cpu_flags avx avx2 bmi1 bmi2 f16c fma abm movbe xsave
echo "x86_64-v4"
report_cpu_flags avx512f avx512bw avx512cd avx512dq avx512vl
|