]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Guard against incomplete AVX512F support in Solaris as
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 1 Feb 2018 08:09:03 +0000 (08:09 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Thu, 1 Feb 2018 08:09:03 +0000 (08:09 +0000)
Backport from mainline
2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

* lib/target-supports.exp (check_effective_target_avx512f): Also
check for __builtin_ia32_addsd_round,
__builtin_ia32_getmantsd_round.
* gcc.target/i386/i386.exp (check_effective_target_avx512f):
Remove.

From-SVN: r257283

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/i386.exp
gcc/testsuite/lib/target-supports.exp

index 273c6cfdeca8c751218214ff6e0517c14715e690..e762dfe06ff403d3ed3070e7e5ebcf3a7081baf8 100644 (file)
@@ -1,3 +1,14 @@
+2018-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       Backport from mainline
+       2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * lib/target-supports.exp (check_effective_target_avx512f): Also
+       check for __builtin_ia32_addsd_round,
+       __builtin_ia32_getmantsd_round.
+       * gcc.target/i386/i386.exp (check_effective_target_avx512f):
+       Remove.
+
 2018-01-29  Alan Modra  <amodra@gmail.com>
 
        PR target/84033
index 2c3145118c88bdebcccda7076fa6fe825620c61d..82f7894ee7f1ce7e83ceaffa48eeff13d258db9b 100644 (file)
@@ -255,18 +255,6 @@ proc check_effective_target_rtm { } {
     } "-mrtm" ]
 }
 
-# Return 1 if avx512f instructions can be compiled.
-proc check_effective_target_avx512f { } {
-    return [check_no_compiler_messages avx512f object {
-       typedef long long __v8di __attribute__ ((__vector_size__ (64)));
-       __v8di
-       mm512_and_epi64  (__v8di __X, __v8di __Y)
-       {
-            return __builtin_ia32_pandq512_mask (__X, __Y, __X, -1);
-       }
-    } "-mavx512f" ]
-}
-
 # Return 1 if avx512vl instructions can be compiled.
 proc check_effective_target_avx512vl { } {
     return [check_no_compiler_messages avx512vl object {
index e31bf3a17a777e82e0b257b0d71f89edcb0b7d88..7134534e87a5c714c246d0e7abc14a3fa39fae7d 100644 (file)
@@ -6301,11 +6301,22 @@ proc check_prefer_avx128 { } {
 proc check_effective_target_avx512f { } {
     return [check_no_compiler_messages avx512f object {
        typedef double __m512d __attribute__ ((__vector_size__ (64)));
+       typedef double __m128d __attribute__ ((__vector_size__ (16)));
 
        __m512d _mm512_add (__m512d a)
        {
          return __builtin_ia32_addpd512_mask (a, a, a, 1, 4);
        }
+
+       __m128d _mm128_add (__m128d a)
+       {
+         return __builtin_ia32_addsd_round (a, a, 8);
+       }
+
+       __m128d _mm128_getmant (__m128d a)
+       {
+         return __builtin_ia32_getmantsd_round (a, a, 0, 8);
+       }
     } "-O2 -mavx512f" ]
 }