On Fri, May 20, 2016 at 8:01 PM, Ilya Verbin <iver...@gmail.com> wrote:
> 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?

No, please just #define NO_MATH_INLINES before math.h is included.
This will solve unwanted inlining.

Uros.

> 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

Reply via email to