This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, vec-tails 10/10] Tests
2016-07-14 20:32 GMT+03:00 Jeff Law <law@redhat.com>:
> On 07/05/2016 09:44 AM, Ilya Enkovich wrote:
>>
>> Hi,
>>
>> This patch adds several tests to check tails vectorization functionality.
>>
>> Thanks,
>> Ilya
>> --
>> gcc/testsuite/
>>
>> 2016-07-05 Ilya Enkovich <ilya.enkovich@intel.com>
>>
>> * lib/target-supports.exp (check_avx2_hw_available): New.
>> (check_effective_target_avx2_runtime): New.
>> * gcc.dg/vect/vect-tail-combine-1.c: New test.
>> * gcc.dg/vect/vect-tail-combine-2.c: New test.
>> * gcc.dg/vect/vect-tail-combine-3.c: New test.
>> * gcc.dg/vect/vect-tail-combine-4.c: New test.
>> * gcc.dg/vect/vect-tail-combine-5.c: New test.
>> * gcc.dg/vect/vect-tail-combine-6.c: New test.
>> * gcc.dg/vect/vect-tail-combine-7.c: New test.
>> * gcc.dg/vect/vect-tail-combine-9.c: New test.
>> * gcc.dg/vect/vect-tail-mask-1.c: New test.
>> * gcc.dg/vect/vect-tail-mask-2.c: New test.
>> * gcc.dg/vect/vect-tail-mask-3.c: New test.
>> * gcc.dg/vect/vect-tail-mask-4.c: New test.
>> * gcc.dg/vect/vect-tail-mask-5.c: New test.
>> * gcc.dg/vect/vect-tail-mask-6.c: New test.
>> * gcc.dg/vect/vect-tail-mask-7.c: New test.
>> * gcc.dg/vect/vect-tail-mask-8.c: New test.
>> * gcc.dg/vect/vect-tail-mask-9.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-1.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-2.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-3.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-4.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-5.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-6.c: New test.
>> * gcc.dg/vect/vect-tail-nomask-7.c: New test.
>
> This is fine when the rest of the patches go in.
>
>
>> + unsigned int eax, ebx, ecx, edx;
>> + if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)
>> + || ((ecx & bit_OSXSAVE) != bit_OSXSAVE))
>> + return 1;
>> +
>> + if (__get_cpuid_max (0, NULL) < 7)
>> + return 1;
>> +
>> + __cpuid_count (7, 0, eax, ebx, ecx, edx);
>> +
>> + return (ebx & bit_AVX2) != bit_AVX2;
>
> Ugh. I'm going to trust this is correct. I vaguely recall mucking around
> with this stuff for the original AVX in glibc several years ago.
Actually I just copied some code from avx2-check.h. Kirill should be able
to review this piece of code.
Thanks,
Ilya
>
> jeff
>