On Fri, Jun 09, 2023 at 08:37:20PM +0800, Xi Ruoyao wrote: > Ping (in hopes that someone can review before the weekend). > > On Sat, 2023-06-03 at 19:25 +0800, Xi Ruoyao wrote: > > We used to skip ifunc check when CX16 is available. But now we use > > CX16+AVX+Intel/AMD for the "perfect" 16b load implementation, so CX16 > > alone is not a sufficient reason not to use ifunc (see PR104688). > > > > This causes a subtle and annoying issue: when GCC is built with a > > higher -march= setting in CFLAGS_FOR_TARGET, ifunc is disabled and > > the worst (locked) implementation of __atomic_load_16 is always used. > > > > There seems no good way to check if the CPU is Intel or AMD from > > the built-in macros (maybe we can check every known model like > > __skylake, > > __bdver2, ..., but it will be very error-prune and require an update > > whenever we add the support for a new x86 model). The best thing we > > can > > do seems "always try ifunc" here. > > > > Bootstrapped and tested on x86_64-linux-gnu. Ok for trunk? > > > > libatomic/ChangeLog: > > > > * configure.tgt: For x86_64, always set try_ifunc=yes.
Ok, thanks. Jakub