This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] BZ #14059 - HAS_FMA4 check needs to also check for AVX


On 11/05/12 16:48, Andreas Jaeger wrote:
> On 05/11/2012 08:34 AM, Andreas Jaeger wrote:
>> On 05/11/2012 12:18 AM, Carlos O'Donell wrote:
>>> On Thu, May 10, 2012 at 6:08 PM, Carlos O'Donell
>>> <carlos@systemhalted.org>   wrote:
>>>> On Tue, May 8, 2012 at 4:23 AM, Andreas Jaeger<aj@suse.de>   wrote:
>>>>>
>>>>> There are two things broken in checking for HAS_FMA4/AVX on x86-64 in
>>>>> the multiarch code:
>>>>>
>>>>> 1. We should disable FAM4 if AVX is not available (due to disabled
>>>>>     OSXSAVE)
>>>>>
>>>>> 2. commit 56f6f6a2403cfa7267cad722597113be35ecf70d reverted some changes
>>>>>     from commit 08cf777f9e7f6d826658a99c7d77a359f73a45bf but forgot to
>>>>>     revert the change for AVX. We really have to disable AVX if it's
>>>>>
>>>>> The issue is easy reproduceable under Xen for the reporter.
>>>>>
>>>>> Also, the two commits introduced YMM_Usable and removed its usage but
>>>>> did not remove the code from the headers, I'm cleaning this up as well.
>>>>>
>>>>> I'm appending a patch that I tested on Linux/x86-64 (without Xen).
>>>>>
>>>>> Ok to commit?
>>>>
>>>> No.
>>>>
>>>> I actually think the code Ulrich wrote originally was almost correct,
>>>> but missing this:
>>>
>>> If I had to fix it it would look like this:
>>
>> Thanks, this looks great - but misses the check for FMA4.
>>
>> Here's a combined patch that compiled fine for me on
>> Linux/x86-64. Jeff, could you test it under Xen, please?
>>
>> Andreas
>>
>> 2012-05-11  Andreas Jaeger<aj@suse.de>
>> 	Carlos O'Donell<carlos_odonell@mentor.com>
>>
>> 	[BZ #14059]
>> 	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
>> 	Fix check for AVX, enable FMA4 only if it exists and if AVX is
>> 	usable.
>>
>> 	* sysdeps/x86_64/multiarch/init-arch.h (bit_AVX_Usable): Renamed
>> 	from bit_YMM_usable.
>> 	(bit_FMA4_Usable): New macro.
>> 	(bit_XMM_state): New macro.
>> 	(bit_YMM_state): New macro.
>> 	(index_AVX_Usable): Renamed from index_YMM_Usable.
>> 	(index_FMA4_Usable): New macro.
>> 	(HAS_YMM_USABLE): Delete.
>> 	(HAS_AVX): Use HAS_ARCH_FEATURE.
>> 	(HAS_FMA4): Likewise.
> 
> That version above contained a typo. Here's an update
> 
> Allan, does this work now?
> 

No. I still get an illegal instruction in __strcasecmp_l_avx with this
version.

Allan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]