Rainer Orth <r...@cebitec.uni-bielefeld.de> writes: > Uros Bizjak <ubiz...@gmail.com> writes: > >> Looks like using builtins should be the correct way, so the original >> patch is OK. >> >> Rainer, can you please add the same cure to sse4_1-floor*.vec tests? > > Sure, will do.
Here's what I committed after retesting on i386-pc-solaris2.9, i386-pc-solaris2.11 and x86_64-unknown-linux-gnu. Rainer 2014-02-05 Rainer Orth <r...@cebitec.uni-bielefeld.de> * gcc.target/i386/avx512f-vrndscaless-2.c (compute_rndscaless): Use __builtin_floorf, __builtin_ceilf. * gcc.target/i386/sse4_1-floorf-sfix-vec.c (floorf): Remove declaration. (TEST): Use __builtin_floorf. * gcc.target/i386/sse4_1-floorf-vec.c: Likewise.
# HG changeset patch # Parent c8a18ca98263f4a2ca4e3e723f9d2b4596b67207 Fix gcc.target/i386/avx512f-vrndscaless-2.c on Solaris 9/x86 diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vrndscaless-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vrndscaless-2.c --- a/gcc/testsuite/gcc.target/i386/avx512f-vrndscaless-2.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-vrndscaless-2.c @@ -18,10 +18,10 @@ compute_rndscaless (float *s1, float *s2 switch (rc) { case _MM_FROUND_FLOOR: - r[0] = floorf (s2[0] * pow (2, m)) / pow (2, m); + r[0] = __builtin_floorf (s2[0] * pow (2, m)) / pow (2, m); break; case _MM_FROUND_CEIL: - r[0] = ceilf (s2[0] * pow (2, m)) / pow (2, m); + r[0] = __builtin_ceilf (s2[0] * pow (2, m)) / pow (2, m); break; default: abort (); diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c --- a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c @@ -15,8 +15,6 @@ #include <math.h> -extern float floorf (float); - #define NUM 64 static void @@ -53,10 +51,10 @@ TEST (void) init_src (a); for (i = 0; i < NUM; i++) - r[i] = (int) floorf (a[i]); + r[i] = (int) __builtin_floorf (a[i]); /* check results: */ for (i = 0; i < NUM; i++) - if (r[i] != (int) floorf (a[i])) + if (r[i] != (int) __builtin_floorf (a[i])) abort(); } diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c --- a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c @@ -15,8 +15,6 @@ #include <math.h> -extern float floorf (float); - #define NUM 64 static void @@ -53,10 +51,10 @@ TEST (void) init_src (a); for (i = 0; i < NUM; i++) - r[i] = floorf (a[i]); + r[i] = __builtin_floorf (a[i]); /* check results: */ for (i = 0; i < NUM; i++) - if (r[i] != floorf (a[i])) + if (r[i] != __builtin_floorf (a[i])) abort(); }
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University