Hi Richard,

>> Essentially anything covered by HWCAP doesn't need an explicit check. So I 
>> kept
>> the LS64 and PREDRES checks since they don't have a HWCAP allocated (I'm not
>> entirely convinced we need these, let alone having 3 individual bits for 
>> LS64, but
>> that's something for the ACLE spec to sort out). The goal here is to fix all 
>> obvious
>> bugs so one can use FMV as intended.
>
> Didn't we take the opposite approach for libatomic though?

We started the work before LSE128/RCPC3 HWCAPs were added, so there was no
alternative at the time. Checking both means a higher QoI, but once most distros
use modern kernels, the CPUID checks become unnecessary and will be removed.

> I suppose one difference is that the libatomic code is gating a
> choice between a well-defined, curated set of routines, whereas the
> libgcc code is providing a general user-facing feature.  So maybe
> libgcc should be more conservative for that reason?

Indeed. Using HWCAP means it's trivially correct and working identically 
between GCC
and LLVM.

I don't rule out adding extra CPUID checks for some features. However unlike 
libatomic,
the selected features are very user visible, so we would need to specify for 
which features
this is both useful and correct, and make sure GCC and LLVM behave in the same 
way.

Cheers,
Wilco

Reply via email to