Several of the new AVX512F tests were FAILing on Solaris 10+/x86:
FAIL: gcc.target/i386/avx512f-vcmppd-2.c (test for excess errors)
WARNING: gcc.target/i386/avx512f-vcmppd-2.c compilation failed to produce
executable
Excess errors:
Undefined first referenced
symbol in file
isunordered /var/tmp//cc33Hbdi.o
ld: fatal: symbol referencing errors. No output written to
./avx512f-vcmppd-2.exe
This happens because isunordered() in <math.h> is only visible with
-std=c99.
FAIL: gcc.target/i386/avx512f-vfixupimmpd-2.c (test for excess errors)
WARNING: gcc.target/i386/avx512f-vfixupimmpd-2.c compilation failed to produce
executable
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c:26:29:
error: 'NAN' undeclared (first use in this function)
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c:32:13:
error: 'INFINITY' undeclared (first use in this function)
Likewise for NAN and INFINITY.
This patch fixes all those instances by adding -std=c99 and requiring
c99_runtime.
Two cases required extra care:
*
FAIL: gcc.target/i386/avx512f-vgetmantpd-2.c (test for excess errors)
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/avx512f-helper.h:81:19
: warning: return type defaults to 'int' [enabled by default]
This function needs to be declared void static to avoid the warning.
* Four testcases use M_PI_2 which is not in C99, so I'm compiling
them with -std=gnu99 instead.
Tested on i386-pc-solaris2.10 and x86_64-unknown-linux-gnu, installed on
mainline.
Rainer
2014-01-03 Rainer Orth <[email protected]>
* gcc.target/i386/avx512f-vcmppd-2.c: Add -std=c99.
Require c99_runtime.
* gcc.target/i386/avx512f-vcmpps-2.c: Likewise.
* gcc.target/i386/avx512f-vfixupimmpd-2.c: Add -std=gnu99.
Require c99_runtime.
* gcc.target/i386/avx512f-vfixupimmps-2.c: Likewise.
* gcc.target/i386/avx512f-vfixupimmsd-2.c: Likewise.
* gcc.target/i386/avx512f-vfixupimmss-2.c: Likewise.
* gcc.target/i386/avx512f-vgetmantpd-2.c: Add -std=c99.
Require c99_runtime.
Make CALC void static.
* gcc.target/i386/avx512f-vgetmantps-2.c: Likewise.
* gcc.target/i386/avx512f-vgetmantsd-2.c: Add -std=c99.
Require c99_runtime.
* gcc.target/i386/avx512f-vgetmantss-2.c: Likewise.
# HG changeset patch
# Parent c17a0967641b237595fd34cea929b4fb732231e3
Correctly require C99 support in avx512f tests
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=gnu99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmps-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=gnu99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmsd-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-mavx512f -O2" } */
+/* { dg-options "-mavx512f -O2 -std=gnu99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#include "avx512f-check.h"
#include "avx512f-helper.h"
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vfixupimmss-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-mavx512f -O2" } */
+/* { dg-options "-mavx512f -O2 -std=gnu99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#include "avx512f-check.h"
#include "avx512f-helper.h"
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantpd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantpd-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantpd-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantpd-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
@@ -72,6 +73,7 @@ get_norm_mant (double source, int signct
}
#endif
+void static
CALC (double *r, double *s, int interv, int signctrl)
{
int i;
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantps-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantps-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantps-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantps-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-O2 -mavx512f" } */
+/* { dg-options "-O2 -mavx512f -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#define AVX512F
@@ -73,6 +74,7 @@ get_norm_mant (float source, int signctr
}
#endif
+void static
CALC (float *r, float *s, int interv, int signctrl)
{
int i;
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantsd-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantsd-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantsd-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantsd-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-mavx512f -O2" } */
+/* { dg-options "-mavx512f -O2 -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#include "avx512f-check.h"
#include "avx512f-helper.h"
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantss-2.c b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantss-2.c
--- a/gcc/testsuite/gcc.target/i386/avx512f-vgetmantss-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512f-vgetmantss-2.c
@@ -1,6 +1,7 @@
/* { dg-do run } */
-/* { dg-options "-mavx512f -O2" } */
+/* { dg-options "-mavx512f -O2 -std=c99" } */
/* { dg-require-effective-target avx512f } */
+/* { dg-require-effective-target c99_runtime } */
#include "avx512f-check.h"
#include "avx512f-helper.h"
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University