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.enkov...@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.

jeff

Reply via email to