On Sun, Sep 18, 2016 at 7:23 AM, Mahmood Naderan <nt_mahmood@xxxxxxxxx> wrote: >> % echo "" | g++ -c -x c++ -v - 2>&1 | grep march > > On both nodes (cluster and compute-0-1) that command returns nothings! I think this may be the one you want: $ g++ -march=x86-64 -dM -E - </dev/null | grep SSE #define __SSE2_MATH__ 1 #define __SSE_MATH__ 1 #define __SSE2__ 1 #define __SSE__ 1 So -march=x86-64 provides only the minimum feature set. SSE2 is bakes into the amd64 core instruction set, so all you get is SSE2. In your particular case, you may be able to use '-march=x86-64 -msse3 -mssse3 -msse4_1 -msse4_2'. That takes you up to AVX and BMI without including it (some hand waiving). Ironically, some versions of Clang and -march=native produces the same defines for GCC and -march=x86-64. We learned about it after adding code generation tests that performed disassembly on object files. Effectively, Clang needs the '-march=x86-64 -msse3 -mssse3 -msse4_1 -msse4_2'. Jeff