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