I am on a linux haswell box but when doing
gcc -march=native -Q --help=target
it has different compiler switches than doing
gcc -march=haswell -Q --help=target
I typed the following to see the differences side by side
diff -u <(gcc -march=native -Q --help=target) <(gcc -march=haswell -Q --help=target) | grep "^[-|+] "
Is there something misconfigured for the haswell architecture type that needs to be set up for the compiler in this case?
That diff command above shows the following flag differences.
- -mabm [enabled]
+ -mabm [disabled]
- -maes [enabled]
+ -maes [disabled]
- -mavx [enabled]
- -mavx2 [enabled]
+ -mavx [disabled]
+ -mavx2 [disabled]
- -mbmi [enabled]
- -mbmi2 [enabled]
+ -mbmi [disabled]
+ -mbmi2 [disabled]
- -mcx16 [enabled]
+ -mcx16 [disabled]
- -mf16c [enabled]
+ -mf16c [disabled]
- -mfma [enabled]
+ -mfma [disabled]
- -mfsgsbase [enabled]
+ -mfsgsbase [disabled]
- -mfxsr [enabled]
+ -mfxsr [disabled]
- -mlzcnt [enabled]
+ -mlzcnt [disabled]
- -mmmx [enabled]
- -mmovbe [enabled]
+ -mmmx [disabled]
+ -mmovbe [disabled]
- -mno-sse4 [disabled]
+ -mno-sse4 [enabled]
- -mpclmul [enabled]
- -mpopcnt [enabled]
+ -mpclmul [disabled]
+ -mpopcnt [disabled]
- -mrdrnd [enabled]
+ -mrdrnd [disabled]
- -msahf [enabled]
+ -msahf [disabled]
- -msse [enabled]
- -msse2 [enabled]
+ -msse [disabled]
+ -msse2 [disabled]
- -msse3 [enabled]
- -msse4 [enabled]
- -msse4.1 [enabled]
- -msse4.2 [enabled]
+ -msse3 [disabled]
+ -msse4 [disabled]
+ -msse4.1 [disabled]
+ -msse4.2 [disabled]
- -mssse3 [enabled]
+ -mssse3 [disabled]
- -mtune= haswell
+ -mtune=
- -mxsave [enabled]
- -mxsaveopt [enabled]
+ -mxsave [disabled]
+ -mxsaveopt [disabled]