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  <r...@cebitec.uni-bielefeld.de>

        * 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

Reply via email to