From f82996f8159981619ac7ed8a4c1838c2ad72ab61 Mon Sep 17 00:00:00 2001 From: Stefan Liebler Date: Wed, 11 Dec 2019 15:09:24 +0100 Subject: Use GCC builtins for round functions if desired. This patch is using the corresponding GCC builtin for roundf, round, roundl and roundf128 if the USE_FUNCTION_BUILTIN macros are defined to one in math-use-builtins.h. This is the case for s390 if build with at least --march=z196 --mzarch. Otherwise the generic implementation is used. The code of the generic implementation is not changed. Reviewed-by: Adhemerval Zanella --- sysdeps/ieee754/flt-32/s_roundf.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sysdeps/ieee754/flt-32') diff --git a/sysdeps/ieee754/flt-32/s_roundf.c b/sysdeps/ieee754/flt-32/s_roundf.c index cddab7b505..5d91239d6e 100644 --- a/sysdeps/ieee754/flt-32/s_roundf.c +++ b/sysdeps/ieee754/flt-32/s_roundf.c @@ -22,11 +22,16 @@ #include #include +#include float __roundf (float x) { +#if USE_ROUNDF_BUILTIN + return __builtin_roundf (x); +#else + /* Use generic implementation. */ int32_t i0, j0; GET_FLOAT_WORD (i0, x); @@ -61,5 +66,6 @@ __roundf (float x) SET_FLOAT_WORD (x, i0); return x; +#endif /* ! USE_ROUNDF_BUILTIN */ } libm_alias_float (__round, round) -- cgit 1.4.1