patch: wire up -mcx16

Rafael EspĂ­ndola rafael.espindola at
Fri Oct 4 21:37:07 PDT 2013

On 4 October 2013 21:04, Nick Lewycky <nlewycky at> wrote:
> GCC has an x86 feature flag, "-mcx16" which enables support for CMPXCHG16B.
> This feature already exists as a feature flag in llvm's x86 backend, but
> there is no matching flag in clang (it is automatically enabled/disabled by
> -march=). This patch has an llvm part and a clang part that wires up -mcx16
> to the existing flag.
> One note. There is a discrepancy between clang and gcc on -march= k8-sse3,
> opteron-sse3, athlon64-sse3 and amdfam10, where our claims those
> architectures support cmpxchg16b but gcc does not define the relevant macro.
> I've gone ahead and made clang define the macro in the same cases that gcc
> does, but have not changed which processors claim to support the instruction
> in

Why not? It is probably better to keep these in sync. In the end, do
you know what is the authoritative source of which amd cpus support
this feature?

LGTM, but pleas at least open a bug about llvm and gcc not agreeing
about which cpus have this feature.


More information about the cfe-commits mailing list