]> gcc.gnu.org Git - gcc.git/commitdiff
avx-recip-vec.c: New test.
authorUros Bizjak <uros@gcc.gnu.org>
Mon, 14 Nov 2011 20:25:14 +0000 (21:25 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 14 Nov 2011 20:25:14 +0000 (21:25 +0100)
* gcc.target/i386/avx-recip-vec.c: New test.
* gcc.target/i386/avx-lrintf-vec.c: Ditto.
* gcc.target/i386/avx-lrint-vec.c: Ditto.
* gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c.
* gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c.
* gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c.
* gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c.
* gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c.
* gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c.
* gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c.
* gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c.
* gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c.
* gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c.
* gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c.
* gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c.

From-SVN: r181364

31 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-ceil-vec.c
gcc/testsuite/gcc.target/i386/avx-ceilf-vec.c
gcc/testsuite/gcc.target/i386/avx-copysign-vec.c
gcc/testsuite/gcc.target/i386/avx-copysignf-vec.c
gcc/testsuite/gcc.target/i386/avx-floor-vec.c
gcc/testsuite/gcc.target/i386/avx-floorf-vec.c
gcc/testsuite/gcc.target/i386/avx-lrint-vec.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx-recip-vec.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx-rint-vec.c
gcc/testsuite/gcc.target/i386/avx-rintf-vec.c
gcc/testsuite/gcc.target/i386/avx-round-vec.c
gcc/testsuite/gcc.target/i386/avx-roundf-vec.c
gcc/testsuite/gcc.target/i386/avx-trunc-vec.c
gcc/testsuite/gcc.target/i386/avx-truncf-vec.c
gcc/testsuite/gcc.target/i386/sse-copysignf-vec.c
gcc/testsuite/gcc.target/i386/sse-recip-vec.c
gcc/testsuite/gcc.target/i386/sse2-copysign-vec.c
gcc/testsuite/gcc.target/i386/sse2-lrint-vec.c
gcc/testsuite/gcc.target/i386/sse2-lrintf-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-ceil-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-ceilf-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-floor-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-floorf-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-rint-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-rintf-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-round-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-roundf-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-trunc-vec.c
gcc/testsuite/gcc.target/i386/sse4_1-truncf-vec.c

index b30ee641923a4ac8dbbdbe8b595207ffe871ed2f..f0acdf79c0051fe763c87e214ed14894d131807f 100644 (file)
@@ -1,8 +1,26 @@
+2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc.target/i386/avx-recip-vec.c: New test.
+       * gcc.target/i386/avx-lrintf-vec.c: Ditto.
+       * gcc.target/i386/avx-lrint-vec.c: Ditto.
+       * gcc.target/i386/avx-ceilf-vec.c: Include sse4_1-ceilf-vec.c.
+       * gcc.target/i386/avx-ceil-vec.c: Include sse4_1-ceil-vec.c.
+       * gcc.target/i386/avx-floorf-vec.c: Include sse4_1-floorf-vec.c.
+       * gcc.target/i386/avx-floor-vec.c: Include sse4_1-floor-vec.c.
+       * gcc.target/i386/avx-rintf-vec.c: Include sse4_1-rintf-vec.c.
+       * gcc.target/i386/avx-rint-vec.c: Include sse4_1-rint-vec.c.
+       * gcc.target/i386/avx-roundf-vec.c: Include sse4_1-roundf-vec.c.
+       * gcc.target/i386/avx-round-vec.c: Include sse4_1-round-vec.c.
+       * gcc.target/i386/avx-truncf-vec.c: Include sse4_1-truncf-vec.c.
+       * gcc.target/i386/avx-trunc-vec.c: Include sse4_1-trunc-vec.c.
+       * gcc.target/i386/avx-copysignf-vec.c: Include sse-copysignf-vec.c.
+       * gcc.target/i386/avx-copysign-vec.c: Include sse2-copysign-vec.c.
+
 2011-11-14  Ed Smith-Rowland  <3dw4rd@verizon.net>
 
        PR c++/51107
-       * g++.dg/cpp0x/udlit-args-neg.C: Add check for void argument non-
-       template literal operator.
+       * g++.dg/cpp0x/udlit-args-neg.C: Add check for void argument
+       non-template literal operator.
 
 2011-11-14  Uros Bizjak  <ubizjak@gmail.com>
 
index e917e31b4efdf4d6b4a420bbfc78bf71e003513c..0e76ab8026c94a32e3dc7218f4e8986071b01ff3 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern double ceil (double);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (double *src)
-{
-  int i, sign = 1;
-  double f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  double a[NUM];
-  double r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = ceil (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != ceil (a[i]))
-      abort();
-}
+#include "sse4_1-ceil-vec.c"
index ef316214d8a799a0863cd30389adc7404d802e9e..c324a9b4f4fc6c13f7c75245e8f74e832889f5d9 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern float ceilf (float);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (float *src)
-{
-  int i, sign = 1;
-  float f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  float a[NUM];
-  float r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = ceilf (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != ceilf (a[i]))
-      abort();
-}
+#include "sse4_1-ceilf-vec.c"
index 130c4066be8431ba25fcc231e59d8ad099ec0148..9b45a093a7608fa4934025a381127dd19824933f 100644 (file)
@@ -2,26 +2,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-options "-O2 -ftree-vectorize -mavx -mtune=generic" } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-extern double copysign (double, double);
-
-#define N 16
-
-double a[N] = {-0.1,-3.2,-6.3,-9.4,-12.5,-15.6,-18.7,-21.8,24.9,27.1,30.2,33.3,36.4,39.5,42.6,45.7};
-double b[N] = {-1.2,3.4,-5.6,7.8,-9.0,1.0,-2.0,3.0,-4.0,-5.0,6.0,7.0,-8.0,-9.0,10.0,11.0};
-double r[N];
-
-static void
-avx_test (void)
-{  
-  int i;
-
-  for (i = 0; i < N; i++)
-    r[i] = copysign (a[i], b[i]);
-
-  /* check results:  */
-  for (i = 0; i < N; i++)
-    if (r[i] != copysign (a[i], b[i]))
-      abort ();
-}
+#include "sse2-copysign-vec.c"
index 9ed3ab727cb4153af13d7493017cad0aa51e0011..00aa6f57ffa07816dff6245654ba537b7bc8d9cf 100644 (file)
@@ -2,26 +2,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-options "-O2 -ftree-vectorize -mavx -mtune=generic" } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-extern float copysignf (float, float);
-
-#define N 16
-
-float a[N] = {-0.1f,-3.2f,-6.3f,-9.4f,-12.5f,-15.6f,-18.7f,-21.8f,24.9f,27.1f,30.2f,33.3f,36.4f,39.5f,42.6f,45.7f};
-float b[N] = {-1.2f,3.4f,-5.6f,7.8f,-9.0f,1.0f,-2.0f,3.0f,-4.0f,-5.0f,6.0f,7.0f,-8.0f,-9.0f,10.0f,11.0f};
-float r[N];
-
-static void
-avx_test (void)
-{  
-  int i;
-
-  for (i = 0; i < N; i++)
-    r[i] = copysignf (a[i], b[i]);
-
-  /* check results:  */
-  for (i = 0; i < N; i++)
-    if (r[i] != copysignf (a[i], b[i]))
-      abort ();
-}
+#include "sse-copysignf-vec.c"
index 55f8f14c0908141f48c7d117e2c9812515fcb5cd..1d7fe5043176521df56c77462ad44439e6ee63f3 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern double floor (double);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (double *src)
-{
-  int i, sign = 1;
-  double f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  double a[NUM];
-  double r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = floor (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != floor (a[i]))
-      abort();
-}
+#include "sse4_1-floor-vec.c"
index 00348114c8c0c25207c720b83b3843a630efa8c4..73da85be9e19d7c8c21430a94b43ad52ea409793 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern float floorf (float);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (float *src)
-{
-  int i, sign = 1;
-  float f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  float a[NUM];
-  float r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = floorf (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != floorf (a[i]))
-      abort();
-}
+#include "sse4_1-floorf-vec.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx-lrint-vec.c b/gcc/testsuite/gcc.target/i386/avx-lrint-vec.c
new file mode 100644 (file)
index 0000000..2df65d2
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */
+/* { dg-require-effective-target avx } */
+
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
+
+#include "sse2-lrint-vec.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c b/gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c
new file mode 100644 (file)
index 0000000..e08b2f5
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx" } */
+/* { dg-require-effective-target avx } */
+
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
+
+#include "sse2-lrintf-vec.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx-recip-vec.c b/gcc/testsuite/gcc.target/i386/avx-recip-vec.c
new file mode 100644 (file)
index 0000000..efeff7e
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx -mfpmath=sse -mrecip" } */
+/* { dg-require-effective-target avx } */
+
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
+
+#include "sse-recip-vec.c"
index dc8c61017c3cb6f59df161af9815ace8b606e6d3..c1d420c6c36e0880e06ab66ea826f91f790aa058 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern double rint (double);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (double *src)
-{
-  int i, sign = 1;
-  double f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  double a[NUM];
-  double r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = rint (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != rint (a[i]))
-      abort();
-}
+#include "sse4_1-rint-vec.c"
index 4d77bf25b29ca465d59cc5f3d2c6ca355e256ef5..caf365da685812fc4d14423820e0de1614c104f5 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern float rintf (float);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (float *src)
-{
-  int i, sign = 1;
-  float f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  float a[NUM];
-  float r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = rintf (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != rintf (a[i]))
-      abort();
-}
+#include "sse4_1-rintf-vec.c"
index 4cfb11ba7cd19cb456814dd38a17aa26e07ec7d1..c43c057049d9c86301cadb9d8be0f5cf3244f7cf 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern double round (double);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (double *src)
-{
-  int i, sign = 1;
-  double f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  double a[NUM];
-  double r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = round (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != round (a[i]))
-      abort();
-}
+#include "sse4_1-round-vec.c"
index ec4c16691c2d64944d378efb1ca1549ba4d64936..978013eb1266253a3f763de5b8bbb1dc7034fa49 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern float roundf (float);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (float *src)
-{
-  int i, sign = 1;
-  float f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  float a[NUM];
-  float r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = roundf (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != roundf (a[i]))
-      abort();
-}
+#include "sse4_1-roundf-vec.c"
index 0b37eb4e04ad43d347114300f5eba5b59fe642fd..a1ee6d461f399ebec9f2acdce522693ea2864111 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern double trunc (double);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (double *src)
-{
-  int i, sign = 1;
-  double f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  double a[NUM];
-  double r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = trunc (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != trunc (a[i]))
-      abort();
-}
+#include "sse4_1-truncf-vec.c"
index 099ff824624ae442f73c27e0c29dd5dce32e0291..a1ee6d461f399ebec9f2acdce522693ea2864111 100644 (file)
@@ -3,52 +3,7 @@
 /* { dg-require-effective-target avx } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "avx-check.h"
+#define CHECK_H "avx-check.h"
+#define TEST avx_test
 
-#include <math.h>
-
-extern float truncf (float);
-
-#define NUM 64
-
-static void
-__attribute__((__target__("fpmath=sse")))
-init_src (float *src)
-{
-  int i, sign = 1;
-  float f = rand ();
-
-  for (i = 0; i < NUM; i++)
-    {
-      src[i] = (i + 1) * f * M_PI * sign;
-      if (i < (NUM / 2))
-       {
-          if ((i % 6) == 0)
-           f = f * src[i];
-        }
-      else if (i == (NUM / 2))
-       f = rand ();
-      else if ((i % 6) == 0)
-       f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
-      sign = -sign;
-    }
-}
-
-static void
-__attribute__((__target__("fpmath=387")))
-avx_test (void)
-{
-  float a[NUM];
-  float r[NUM];
-  int i;
-
-  init_src (a);
-
-  for (i = 0; i < NUM; i++)
-    r[i] = truncf (a[i]);
-
-  /* check results:  */
-  for (i = 0; i < NUM; i++)
-    if (r[i] != truncf (a[i]))
-      abort();
-}
+#include "sse4_1-truncf-vec.c"
index bd85889503d39a52355f8595c7a82b6be5c20142..5b1cfe795f21f90234d2f6a89466f072d0fcd6be 100644 (file)
@@ -2,7 +2,15 @@
 /* { dg-options "-O2 -ftree-vectorize -msse" } */
 /* { dg-require-effective-target sse } */
 
-#include "sse-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse_test
+#endif
+
+#include CHECK_H
 
 extern float copysignf (float, float);
 
@@ -13,7 +21,7 @@ float b[N] = {-1.2f,3.4f,-5.6f,7.8f,-9.0f,1.0f,-2.0f,3.0f,-4.0f,-5.0f,6.0f,7.0f,
 float r[N];
 
 static void
-sse_test (void)
+TEST (void)
 {  
   int i;
 
index bb1e458f92db0e493f005ce7612b7d6d47517442..de2f3d2977508dd39c7b5fa405b453006248abf1 100644 (file)
@@ -2,7 +2,15 @@
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse -mfpmath=sse -mrecip" } */
 /* { dg-require-effective-target sse } */
 
-#include "sse-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse_test
+#endif
+
+#include CHECK_H
 
 extern float sqrtf (float);
 extern float fabsf (float);
@@ -16,7 +24,7 @@ float r[N];
 float rc[N] = { 0.f, 3.f, 6.f, 9.f, 12.f, 18.f, 21.f, 27.f };
 
 static void
-sse_test (void)
+TEST (void)
 {
   int i;
 
index 5726448d76cb472982b41740935365753de9d691..b336b3284d057420a168ca6dd228659d79c92864 100644 (file)
@@ -2,7 +2,15 @@
 /* { dg-options "-O2 -ftree-vectorize -msse2" } */
 /* { dg-require-effective-target sse2 } */
 
-#include "sse2-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse2-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse2_test
+#endif
+
+#include CHECK_H
 
 extern double copysign (double, double);
 
@@ -13,7 +21,7 @@ double b[N] = {-1.2,3.4,-5.6,7.8,-9.0,1.0,-2.0,3.0,-4.0,-5.0,6.0,7.0,-8.0,-9.0,1
 double r[N];
 
 static void
-sse2_test (void)
+TEST (void)
 {  
   int i;
 
index 43797f707822cafd0e8d1fc5bf491a634599df22..111e9b2740efbbfb6cd6dff8fead55c30b57e04a 100644 (file)
@@ -2,7 +2,15 @@
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
 /* { dg-require-effective-target sse2 } */
 
-#include "sse2-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse2-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse2_test
+#endif
+
+#include CHECK_H
 
 extern long lrint (double);
 
@@ -12,7 +20,7 @@ double a[N] = {0.4,3.5,6.6,9.4,12.5,15.6,18.4,21.5,24.6,27.4,30.5,33.6,36.4,39.5
 long r[N];
 
 static void
-sse2_test (void)
+TEST (void)
 {
   int i;
 
index eaec22cb3a3c8de5a53ea942ad7c2998e8a1d6dc..ee917623cbd0a73ce34570ea97f0adda7b94d5b1 100644 (file)
@@ -2,7 +2,15 @@
 /* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2" } */
 /* { dg-require-effective-target sse2 } */
 
-#include "sse2-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse2-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse2_test
+#endif
+
+#include CHECK_H
 
 extern long lrintf (float);
 
@@ -12,7 +20,7 @@ float a[N] = {0.4,3.5,6.6,9.4,12.5,15.6,18.4,21.5,24.6,27.4,30.5,33.6,36.4,39.5,
 long r[N];
 
 static void
-sse2_test (void)
+TEST (void)
 {
   int i;
 
index 886dd77c2068fe31f53b4642291e1dbf9982331e..20bb2641facf4808ff2bc3ad7abff7408fd3b91b 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (double *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   double a[NUM];
   double r[NUM];
index 41d59d74eac70a2a0492544b87299a944c6be795..314be91fa6cd49fb190fee70d7d255d3a0e75828 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (float *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   float a[NUM];
   float r[NUM];
index 02ebe62ec7b56866f265367b0bc376a5e8b01d3d..d250413c1b748e10dd2599eda8a41ab71f239b8c 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (double *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   double a[NUM];
   double r[NUM];
index 6704892df537e4b170c48966bef9cdd625df5984..2f339f3b50efb3998e5b9c6d0524919b7caa6a0f 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (float *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   float a[NUM];
   float r[NUM];
index 8df5717a23d29ff8e2b8dca58a30981c403fd975..f20359a1ae2ed6df48fb012026f9b909407703bd 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (double *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   double a[NUM];
   double r[NUM];
index 9c97c35bed92689b9784fa209c31192268ca17e3..716cad1e3fffb02010073461bc097e8d85f7f889 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (float *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   float a[NUM];
   float r[NUM];
index dcd36cd2b117c47e82b1667fe3d4937391e1083b..bb912cef9555f1ca6a92c04efd3d4ed5ec7086ef 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (double *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   double a[NUM];
   double r[NUM];
index d64660a1a91e3e21170741d38ce5d844e4f5f890..d254aa66b89281cba58193d3a89054f134af1436 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (float *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   float a[NUM];
   float r[NUM];
index e82dec93f88c97fecaa673aeabd4f660822449f3..9cbcd9b398578c7427ca5bb6226f055ea25d570c 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (double *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   double a[NUM];
   double r[NUM];
index 6a267ca94d60dad5c014db6d3fcea114751d53d7..815b5081433154a295a9741a77eada3086f5f10c 100644 (file)
@@ -3,7 +3,15 @@
 /* { dg-require-effective-target sse4 } */
 /* { dg-skip-if "no M_PI" { vxworks_kernel } } */
 
-#include "sse4_1-check.h"
+#ifndef CHECK_H
+#define CHECK_H "sse4_1-check.h"
+#endif
+
+#ifndef TEST
+#define TEST sse4_1_test
+#endif
+
+#include CHECK_H
 
 #include <math.h>
 
@@ -36,7 +44,7 @@ init_src (float *src)
 
 static void
 __attribute__((__target__("fpmath=387")))
-sse4_1_test (void)
+TEST (void)
 {
   float a[NUM];
   float r[NUM];
This page took 0.120008 seconds and 5 git commands to generate.