<div dir="ltr">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.<div>

<br></div><div>One note. There is a discrepancy between clang and gcc on -march= k8-sse3, opteron-sse3, athlon64-sse3 and amdfam10, where our X86.td 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 X86.td.<br>

</div><div><br></div><div>Please review!<br></div><div><br></div><div>Nick</div></div>