Patchwork x86 testsuite fixes for -march= multilib testing

login
register
mail settings
Submitter Joseph S. Myers
Date Oct. 22, 2010, 9:35 p.m.
Message ID <Pine.LNX.4.64.1010222134040.21730@digraph.polyomino.org.uk>
Download mbox | patch
Permalink /patch/68974/
State New
Headers show

Comments

Joseph S. Myers - Oct. 22, 2010, 9:35 p.m.
This patch fixes various x86 testcases for issues running the testsuite
with -march= multilib options.  (Recall that multilib options passed
when running the testsuite come *after* those in dg-options.)

* gcc.target/i386/isa-9.c and gcc.target/i386/pr42589.c have -march
  options in dg-options and should be skipped if other -march options
  are in the multilib options, similarly to how other tests with this
  issue are skipped.

* gcc.target/i386/sse-19.c tests for a particular assembler
  instruction with -msse2; this instruction doesn't appear if your
  -march option (or one configured with --with-arch, presumably)
  enables SSSE3.  Fixed by adding an explicit -march option (I chose
  -march=x86-64) and skipping for other -march values.

* gcc.dg/march-generic.c (which is an x86-specific test despite not
  being in gcc.target) tests for an error for -march=generic which
  does not appear if another, valid -march option follows.  In this
  case, arguably there *should* be an error.  But since the test
  gcc.dg/march.c (testing for a -march=foo error) is already skipped
  for -march in multilib options, I think it is reasonable to skip
  march-generic.c as well.  If any of my options changes result in
  such errors being given sooner, so they apply even for overridden
  -march options, then at that point those skips can be removed.

OK to commit?

2010-10-22  Joseph Myers  <joseph@codesourcery.com>

	* gcc.dg/march-generic.c: Skip for -march in multilib options.
	* gcc.target/i386/isa-9.c: Skip for -march other than
	-march=amdfam10 in multilib options.
	* gcc.target/i386/pr42589.c: Skip for -march other than
	-march=i486 in multilib options.
	* gcc.target/i386/sse-19.c: Add -march=x86-64 option and skip for
	other -march in multilib options.
Richard Guenther - Oct. 23, 2010, 6:49 a.m.
On Fri, Oct 22, 2010 at 11:35 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> This patch fixes various x86 testcases for issues running the testsuite
> with -march= multilib options.  (Recall that multilib options passed
> when running the testsuite come *after* those in dg-options.)
>
> * gcc.target/i386/isa-9.c and gcc.target/i386/pr42589.c have -march
>  options in dg-options and should be skipped if other -march options
>  are in the multilib options, similarly to how other tests with this
>  issue are skipped.
>
> * gcc.target/i386/sse-19.c tests for a particular assembler
>  instruction with -msse2; this instruction doesn't appear if your
>  -march option (or one configured with --with-arch, presumably)
>  enables SSSE3.  Fixed by adding an explicit -march option (I chose
>  -march=x86-64) and skipping for other -march values.
>
> * gcc.dg/march-generic.c (which is an x86-specific test despite not
>  being in gcc.target) tests for an error for -march=generic which
>  does not appear if another, valid -march option follows.  In this
>  case, arguably there *should* be an error.  But since the test
>  gcc.dg/march.c (testing for a -march=foo error) is already skipped
>  for -march in multilib options, I think it is reasonable to skip
>  march-generic.c as well.  If any of my options changes result in
>  such errors being given sooner, so they apply even for overridden
>  -march options, then at that point those skips can be removed.
>
> OK to commit?

Ok.

Thanks,
Richard.

> 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
>
>        * gcc.dg/march-generic.c: Skip for -march in multilib options.
>        * gcc.target/i386/isa-9.c: Skip for -march other than
>        -march=amdfam10 in multilib options.
>        * gcc.target/i386/pr42589.c: Skip for -march other than
>        -march=i486 in multilib options.
>        * gcc.target/i386/sse-19.c: Add -march=x86-64 option and skip for
>        other -march in multilib options.
>
> Index: gcc/testsuite/gcc.target/i386/sse-19.c
> ===================================================================
> --- gcc/testsuite/gcc.target/i386/sse-19.c      (revision 165855)
> +++ gcc/testsuite/gcc.target/i386/sse-19.c      (working copy)
> @@ -1,5 +1,6 @@
>  /* { dg-do compile } */
> -/* { dg-options "-O3 -msse2" } */
> +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=x86-64" } } */
> +/* { dg-options "-O3 -march=x86-64 -msse2" } */
>  /* { dg-final { scan-assembler "punpcklbw" } } */
>  extern void abort();
>  #include <emmintrin.h>
> Index: gcc/testsuite/gcc.target/i386/isa-9.c
> ===================================================================
> --- gcc/testsuite/gcc.target/i386/isa-9.c       (revision 165855)
> +++ gcc/testsuite/gcc.target/i386/isa-9.c       (working copy)
> @@ -1,4 +1,5 @@
>  /* { dg-do run } */
> +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
>  /* { dg-options "-march=amdfam10 -mno-fma4" } */
>
>  extern void abort (void);
> Index: gcc/testsuite/gcc.target/i386/pr42589.c
> ===================================================================
> --- gcc/testsuite/gcc.target/i386/pr42589.c     (revision 165855)
> +++ gcc/testsuite/gcc.target/i386/pr42589.c     (working copy)
> @@ -1,5 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target ilp32 } */
> +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i486" } } */
>  /* { dg-options "-O2 -march=i486" } */
>
>  void
> Index: gcc/testsuite/gcc.dg/march-generic.c
> ===================================================================
> --- gcc/testsuite/gcc.dg/march-generic.c        (revision 165855)
> +++ gcc/testsuite/gcc.dg/march-generic.c        (working copy)
> @@ -1,4 +1,5 @@
>  /* { dg-do compile { target i?86-*-* } } */
> +/* { dg-skip-if "" { *-*-* } { "-march=*" } { "" } } */
>  /* { dg-options "-march=generic" } */
>  /* { dg-error "generic CPU can be used only for -mtune" "" { target *-*-* } 0 } */
>  /* { dg-bogus "march" "" { target *-*-* } 0 } */
>
> --
> Joseph S. Myers
> joseph@codesourcery.com
>

Patch

Index: gcc/testsuite/gcc.target/i386/sse-19.c
===================================================================
--- gcc/testsuite/gcc.target/i386/sse-19.c	(revision 165855)
+++ gcc/testsuite/gcc.target/i386/sse-19.c	(working copy)
@@ -1,5 +1,6 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O3 -msse2" } */
+/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=x86-64" } } */
+/* { dg-options "-O3 -march=x86-64 -msse2" } */
 /* { dg-final { scan-assembler "punpcklbw" } } */
 extern void abort();
 #include <emmintrin.h>
Index: gcc/testsuite/gcc.target/i386/isa-9.c
===================================================================
--- gcc/testsuite/gcc.target/i386/isa-9.c	(revision 165855)
+++ gcc/testsuite/gcc.target/i386/isa-9.c	(working copy)
@@ -1,4 +1,5 @@ 
 /* { dg-do run } */
+/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
 /* { dg-options "-march=amdfam10 -mno-fma4" } */
 
 extern void abort (void);
Index: gcc/testsuite/gcc.target/i386/pr42589.c
===================================================================
--- gcc/testsuite/gcc.target/i386/pr42589.c	(revision 165855)
+++ gcc/testsuite/gcc.target/i386/pr42589.c	(working copy)
@@ -1,5 +1,6 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target ilp32 } */
+/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i486" } } */
 /* { dg-options "-O2 -march=i486" } */
 
 void
Index: gcc/testsuite/gcc.dg/march-generic.c
===================================================================
--- gcc/testsuite/gcc.dg/march-generic.c	(revision 165855)
+++ gcc/testsuite/gcc.dg/march-generic.c	(working copy)
@@ -1,4 +1,5 @@ 
 /* { dg-do compile { target i?86-*-* } } */
+/* { dg-skip-if "" { *-*-* } { "-march=*" } { "" } } */
 /* { dg-options "-march=generic" } */
 /* { dg-error "generic CPU can be used only for -mtune" "" { target *-*-* } 0 } */
 /* { dg-bogus "march" "" { target *-*-* } 0 } */