+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-12 Segher Boessenkool <segher@kernel.crashing.org>
PR target/83629
} "-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 {
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" ]
}