diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2017-05-28 19:12:45 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2017-05-28 19:12:45 +0000 |
commit | 9698e1bb336c3d623231d7bb017681c2b82523dc (patch) | |
tree | 50b127f72fd0832fb01d1d6fad18a2a0aa044911 /libgfortran/configure | |
parent | 8364e6aca3381e6572b54ed49299e94887610f9e (diff) | |
download | gcc-9698e1bb336c3d623231d7bb017681c2b82523dc.zip gcc-9698e1bb336c3d623231d7bb017681c2b82523dc.tar.gz gcc-9698e1bb336c3d623231d7bb017681c2b82523dc.tar.bz2 |
Fix libgfortran FMA3/FMA4 tests
* acinclude.m4 (LIBGFOR_CHECK_FMA3): Use test from
check_effective_target_fma in gcc.target/i386/i386.exp.
(LIBGFOR_CHECK_FMA4): Use test from check_effective_target_fma4.
* configure: Regenerate.
From-SVN: r248547
Diffstat (limited to 'libgfortran/configure')
-rwxr-xr-x | libgfortran/configure | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libgfortran/configure b/libgfortran/configure index 28f10d5..87c83ca 100755 --- a/libgfortran/configure +++ b/libgfortran/configure @@ -26372,10 +26372,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - float - flt_mul_add (float a, float b, float c) + typedef float __m128 __attribute__ ((__vector_size__ (16))); + typedef float __v4sf __attribute__ ((__vector_size__ (16))); + __m128 _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C) { - return __builtin_fmaf (a, b, c); + return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, + (__v4sf)__B, + (__v4sf)__C); } int main () @@ -26401,10 +26404,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - float - flt_mul_add (float a, float b, float c) + typedef float __m128 __attribute__ ((__vector_size__ (16))); + typedef float __v4sf __attribute__ ((__vector_size__ (16))); + __m128 _mm_macc_ps(__m128 __A, __m128 __B, __m128 __C) { - return __builtin_fmaf (a, b, c); + return (__m128) __builtin_ia32_vfmaddps ((__v4sf)__A, + (__v4sf)__B, + (__v4sf)__C); } int main () |