On 17 Feb 2018, at 00:12, Craig Topper via Phabricator <revi...@reviews.llvm.org> wrote: > > craig.topper added inline comments. > > > ================ > Comment at: lib/Basic/Targets/X86.cpp:1049 > > + if (HasLAHFSAHF) > + Builder.defineMacro("__LAHFSAHF__"); > ---------------- > dim wrote: >> craig.topper wrote: >>> Does gcc define this? It's such a low level instruction I have a hard time >>> believing this define would be useful. >> I tried gcc 6, 7 and 8, and while they do expose stuff like `__POPCNT__`, I >> see no `__LAHFSAHF__`. I am supposing Jonathan's original intent with this >> was to make it easily testable in source, so you can insert the right >> assembly for the target CPU. The same could really be said for things like >> `__RDSEED__`, and some other defines... > Most of the defines indicate the availability of intrinsics. At least that > was their original intent. They used to control what intrinsic header were > included in x86intrin.h or immintrin.h. Though now we include everything > except in MSVC compatible mode and allow the target attribute to provide per > function control. > > I'd prefer not to add this one if gcc doesn't have it.
Jonathan, can you comment on your reasons for adding the __LAHFSAHF__ define? Was this just a nice-to-have, or do you require it for something related to https://bugs.llvm.org/show_bug.cgi?id=36028 ? > > > Repository: > rC Clang > > https://reviews.llvm.org/D43394 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits