This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
__MOVBE__ not defined when movbe feature is available?
- From: Jeffrey Walton <noloader at gmail dot com>
- To: "gcc-help at gcc dot gnu dot org" <gcc-help at gcc dot gnu dot org>
- Date: Mon, 23 Jan 2017 23:31:13 -0500
- Subject: __MOVBE__ not defined when movbe feature is available?
- Authentication-results: sourceware.org; auth=none
- Reply-to: noloader at gmail dot com
I'm working on a Athlon X4 845. It includes the movbe feature:
$ cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good acc_power nopl
nonstop_tsc extd_apicid aperfmperf eagerfpu pni pclmulqdq monitor
ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand
lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse
3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm
topoext perfctr_core perfctr_nb bpext ptsc mwaitx cpb hw_pstate
vmmcall fsgsbase bmi1 avx2 smep bmi2 xsaveopt arat npt lbrv svm_lock
nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter
pfthreshold avic overflow_recov
...
However, when I attempt to use it by looking for its define:
$ g++ -march=native -dM -E - < /dev/null | sort
...
#define __LWP__ 1
#define __LZCNT__ 1
#define __MMX__ 1
#define __MWAITX__ 1
#define __NO_INLINE__ 1
#define __ORDER_BIG_ENDIAN__ 4321
...
I am working with GCC 6 on Fedora 25:
$ gcc --version
gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
Shouldn't __MOVBE__ be defined with -march=native for this processor?
Or am I doing something wrong?
Jeff