From 4e6beb918b97a5e88ece846a922d0895f5ff93c8 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Thu, 1 Feb 2018 08:09:03 +0000 Subject: [PATCH] Guard against incomplete AVX512F support in Solaris as Backport from mainline 2018-01-12 Rainer Orth * 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 | 11 +++++++++++ gcc/testsuite/gcc.target/i386/i386.exp | 12 ------------ gcc/testsuite/lib/target-supports.exp | 11 +++++++++++ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 273c6cfdeca8..e762dfe06ff4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2018-02-01 Rainer Orth + + Backport from mainline + 2018-01-12 Rainer Orth + + * 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 PR target/84033 diff --git a/gcc/testsuite/gcc.target/i386/i386.exp b/gcc/testsuite/gcc.target/i386/i386.exp index 2c3145118c88..82f7894ee7f1 100644 --- a/gcc/testsuite/gcc.target/i386/i386.exp +++ b/gcc/testsuite/gcc.target/i386/i386.exp @@ -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 { diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index e31bf3a17a77..7134534e87a5 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -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" ] } -- 2.47.2