Hi! In some cases the i387 version of a math function may be inlined from math.h, and the testcase (like gcc.target/i386/sse4_1-ceil-vec.c) will actually test inlined asm instead of vectorized builtin. To fix this I've created a new file gcc.dg/mathfunc.h (similar to gcc.dg/strlenopt.h) and changed vectorization tests so that they include it instead of math.h. Regtested on x86_64-linux and i686-linux. Is it OK for trunk?
gcc/testsuite/ * gcc.dg/mathfunc.h: New file. * gcc.target/i386/avx-ceil-sfix-2-vec.c: Do not skip if there is no M_PI for vxworks_kernel. Include mathfunc.h instead of math.h. Remove declaration. * gcc.target/i386/avx-cvt-2-vec.c: Likewise. * gcc.target/i386/avx-floor-sfix-2-vec.c: Likewise. * gcc.target/i386/avx-rint-sfix-2-vec.c: Likewise. * gcc.target/i386/avx-round-sfix-2-vec.c: Likewise. * gcc.target/i386/avx512f-ceil-sfix-vec-1.c: Likewise. * gcc.target/i386/avx512f-floor-sfix-vec-1.c: Likewise. * gcc.target/i386/sse2-cvt-vec.c: Likewise. * gcc.target/i386/sse4_1-ceil-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-ceil-vec.c: Likewise. * gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-ceilf-vec.c: Likewise. * gcc.target/i386/sse4_1-floor-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-floor-vec.c: Likewise. * gcc.target/i386/sse4_1-rint-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-rint-vec.c: Likewise. * gcc.target/i386/sse4_1-rintf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-rintf-vec.c: Likewise. * gcc.target/i386/sse4_1-round-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-round-vec.c: Likewise. * gcc.target/i386/sse4_1-roundf-sfix-vec.c: Likewise. * gcc.target/i386/sse4_1-roundf-vec.c: Likewise. * gcc.target/i386/sse4_1-trunc-vec.c: Likewise. * gcc.target/i386/sse4_1-truncf-vec.c: Likewise. * gcc.target/i386/sse4_1-floorf-sfix-vec.c: Likewise. Use floorf instead of __builtin_floorf. * gcc.target/i386/sse4_1-floorf-vec.c: Likewise. diff --git a/gcc/testsuite/gcc.dg/mathfunc.h b/gcc/testsuite/gcc.dg/mathfunc.h new file mode 100644 index 0000000..1c1b7bc --- /dev/null +++ b/gcc/testsuite/gcc.dg/mathfunc.h @@ -0,0 +1,20 @@ +/* This is a replacement of needed parts from math.h for testing vectorization, + to ensure we are testing the builtins rather than whatever the OS has in its + headers. */ + +#define M_PI 3.14159265358979323846 + +extern double ceil (double); +extern float ceilf (float); + +extern double floor (double); +extern float floorf (float); + +extern double trunc (double); +extern float truncf (float); + +extern double round (double); +extern float roundf (float); + +extern double rint (double); +extern float rintf (float); diff --git a/gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c b/gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c index bf48b80..567a16d 100644 --- a/gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c +++ b/gcc/testsuite/gcc.target/i386/avx-ceil-sfix-2-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */ /* { dg-require-effective-target avx } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "avx-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double ceil (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 4 diff --git a/gcc/testsuite/gcc.target/i386/avx-cvt-2-vec.c b/gcc/testsuite/gcc.target/i386/avx-cvt-2-vec.c index 0081dcf..8a8369b 100644 --- a/gcc/testsuite/gcc.target/i386/avx-cvt-2-vec.c +++ b/gcc/testsuite/gcc.target/i386/avx-cvt-2-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */ /* { dg-require-effective-target avx } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "avx-check.h" @@ -13,7 +12,7 @@ #include CHECK_H -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #define NUM 4 diff --git a/gcc/testsuite/gcc.target/i386/avx-floor-sfix-2-vec.c b/gcc/testsuite/gcc.target/i386/avx-floor-sfix-2-vec.c index 275199c..44002b4 100644 --- a/gcc/testsuite/gcc.target/i386/avx-floor-sfix-2-vec.c +++ b/gcc/testsuite/gcc.target/i386/avx-floor-sfix-2-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */ /* { dg-require-effective-target avx } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "avx-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double floor (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 4 diff --git a/gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c b/gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c index 9f273af..980b341 100644 --- a/gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c +++ b/gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */ /* { dg-require-effective-target avx } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "avx-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double rint (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 4 diff --git a/gcc/testsuite/gcc.target/i386/avx-round-sfix-2-vec.c b/gcc/testsuite/gcc.target/i386/avx-round-sfix-2-vec.c index ddb46d9..18cfc6b 100644 --- a/gcc/testsuite/gcc.target/i386/avx-round-sfix-2-vec.c +++ b/gcc/testsuite/gcc.target/i386/avx-round-sfix-2-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */ /* { dg-require-effective-target avx } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "avx-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double round (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 4 diff --git a/gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c b/gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c index 038d25e..cb342b2 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-ceil-sfix-vec-1.c @@ -1,13 +1,10 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */ /* { dg-require-effective-target avx512f } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #include "avx512f-check.h" -extern double ceil (double); - #define NUM 64 static void diff --git a/gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c b/gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c index fab7e65..23cbbf0 100644 --- a/gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c +++ b/gcc/testsuite/gcc.target/i386/avx512f-floor-sfix-vec-1.c @@ -1,13 +1,10 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */ /* { dg-require-effective-target avx512f } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #include "avx512f-check.h" -extern double floor (double); - #define NUM 64 static void diff --git a/gcc/testsuite/gcc.target/i386/sse2-cvt-vec.c b/gcc/testsuite/gcc.target/i386/sse2-cvt-vec.c index 8a811a3..2d89bcf 100644 --- a/gcc/testsuite/gcc.target/i386/sse2-cvt-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse2-cvt-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */ /* { dg-require-effective-target sse2 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse2-check.h" @@ -13,7 +12,7 @@ #include CHECK_H -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-ceil-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-ceil-sfix-vec.c index ca07d9c..1479b94 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-ceil-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-ceil-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double ceil (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-ceil-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-ceil-vec.c index 20bb264..00b440c 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-ceil-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-ceil-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double ceil (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-sfix-vec.c index b0559bf..d583a4b 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float ceilf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-vec.c index 314be91..7add7d5 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-ceilf-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float ceilf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-floor-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-floor-sfix-vec.c index 2083a60..2fd7573 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-floor-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floor-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double floor (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-floor-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-floor-vec.c index d250413..1ec371b 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-floor-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floor-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double floor (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 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 index 7e18b46..efd7962 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,7 +12,7 @@ #include CHECK_H -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #define NUM 64 @@ -51,10 +50,10 @@ TEST (void) init_src (a); for (i = 0; i < NUM; i++) - r[i] = (int) __builtin_floorf (a[i]); + r[i] = (int) floorf (a[i]); /* check results: */ for (i = 0; i < NUM; i++) - if (r[i] != (int) __builtin_floorf (a[i])) + if (r[i] != (int) 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 index 019ef89..31637c0 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,7 +12,7 @@ #include CHECK_H -#include <math.h> +#include "../../gcc.dg/mathfunc.h" #define NUM 64 @@ -51,10 +50,10 @@ TEST (void) init_src (a); for (i = 0; i < NUM; i++) - r[i] = __builtin_floorf (a[i]); + r[i] = floorf (a[i]); /* check results: */ for (i = 0; i < NUM; i++) - if (r[i] != __builtin_floorf (a[i])) + if (r[i] != floorf (a[i])) abort(); } diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-rint-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-rint-sfix-vec.c index d9c2fbf..f1e2547 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-rint-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-rint-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double rint (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c index f20359a..d13efbb 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double rint (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-rintf-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-rintf-sfix-vec.c index 1d25f76..c105e7e 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-rintf-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-rintf-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float rintf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-rintf-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-rintf-vec.c index 716cad1..e758e93 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-rintf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-rintf-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float rintf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-round-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-round-sfix-vec.c index 9abbe55..98f61ac 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-round-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-round-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double round (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-round-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-round-vec.c index bb912cef..64014cc 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-round-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-round-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double round (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-roundf-sfix-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-roundf-sfix-vec.c index 5384e5c..dc75562 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-roundf-sfix-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-roundf-sfix-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float roundf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-roundf-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-roundf-vec.c index d254aa6..f287a57 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-roundf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-roundf-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float roundf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c index 9cbcd9b..1fb6ddc 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern double trunc (double); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c b/gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c index 815b508..e5dc9bc 100644 --- a/gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c +++ b/gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c @@ -1,7 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse4.1" } */ /* { dg-require-effective-target sse4 } */ -/* { dg-skip-if "no M_PI" { vxworks_kernel } } */ #ifndef CHECK_H #define CHECK_H "sse4_1-check.h" @@ -13,9 +12,7 @@ #include CHECK_H -#include <math.h> - -extern float truncf (float); +#include "../../gcc.dg/mathfunc.h" #define NUM 64 Thanks, -- Ilya