This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: __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: Thu, 26 Jan 2017 04:06:32 -0500
- Subject: Re: __MOVBE__ not defined when movbe feature is available?
- Authentication-results: sourceware.org; auth=none
- References: <CAH8yC8n9k8--c6pON-HqzVLUxkeuhvviZrEC=N3O4ff0sYXrBQ@mail.gmail.com>
- Reply-to: noloader at gmail dot com
> Shouldn't __MOVBE__ be defined with -march=native for this processor?
> Or am I doing something wrong?
Should this be reported, or is it expected behavior?
Jeff
On Mon, Jan 23, 2017 at 11:31 PM, Jeffrey Walton <noloader@gmail.com> wrote:
> 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?