diff mbox

Migrating gcc.c-torture

Message ID 53F73518.8020602@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt Aug. 22, 2014, 12:18 p.m. UTC
On 07/29/2014 12:36 AM, Joseph S. Myers wrote:
> On Thu, 24 Jul 2014, Jakub Jelinek wrote:
>> Yeah.  I believe gcc.c-torture/compile/ has been converted already,
>> so it is just about gcc.c-torture/execute/.  Each of these tests has
>> it's own default idioms, e.g. -w in by default in gcc.c-torture/.

Using -w does not strike me as a feature - ideally we'd like to know if 
we produce new warnings. Almost all of the existing warnings could be 
shut up by adding declarations of abort and exit.

>> So, please just tweak execute.exp, so that it does what it did until now
>> (perhaps with the exception of *.x files support) in dg framework, and
>> convert *.exp files into dg-* directives in the testcases.
>
> And note that this is bug 20567.  Existing dg-* directive uses in
> gcc.c-torture/execute/ (which are currently ignored) may or may not be
> correct, so they should be reviewed as part of such a migration to decide
> whether they should stay or be removed.  (There aren't that many of them
> to review.)

Here's another attempt. I've used a global default of "-w" as in 
c-torture/compile; in testcases that use dg-options (overriding this 
default) I've usually added in declarations of abort and exit to shut up 
the warnings.

Some notes about testcases where the conversion wasn't straightforward:

931004-12.c:
     # xfail this on powerpc-*-darwin, see PR 15923
In the PR, we first see a note that the test has been xfailed, then 
later we see a "Fixed". I've decided not to keep the xfail.

cvt-1.c:
Has a dubious comment about the test failing on d10v without 32 bit 
ints. Since that would indicate a bug in the target, and the target was 
removed anyway (or never added - can't find any other mention of it), 
decided not to keep the xfail.

20030125-1.x:
Uses a test for *linux*, *gnu* or uclibc to identify whether the target 
supports C99 library functions. Replaced with require-effective-target 
c99_runtime.

990413-2.c:
Says the test is x86 specific. Not moved to gcc.target however, in order 
to keep it running with all torture options.

20111227-[23].c:
Wants to examing optimizer log files (which presumably doesn't do 
anything when run in current c-torture), and wants to run at only one 
optimization level. Moved to gcc.dg and added -free since it is not 
enabled at -O.

20010129-1.c:
Has some tcl code that modifies options on i686 based on whether -m64 is 
specified. As a translation I've used
/* { dg-options "-mtune-i686" { target { { i?86*-*-* } && ilp32 } } } */
which I think should do the same thing.

920710-1.x:
Claims h8300 does not have long long. The .x file predates a checkin 
that makes LONG_LONG_TYPE_SIZE 64 on h8300. Decided not to keep this.

pr53366-1.x:
No corresponding test exists (there are tests with that name in 
dg/torture and target/i386).

These are the changes on x86_64-linux:

                 === gcc Summary ===

-# of expected passes           199892
+# of expected passes           199844
  # of unexpected failures       247
  # of unexpected successes      54
  # of expected failures         526
-# of unsupported tests         3487
+# of unsupported tests         3495

Ok?


Bernd

Comments

Mike Stump Aug. 22, 2014, 8:39 p.m. UTC | #1
On Aug 22, 2014, at 5:18 AM, Bernd Schmidt <bernds@codesourcery.com> wrote:
> 
> Here's another attempt.

> Ok?

Ok.  Thanks a ton for doing the work.

The resolutions look fine, the translation looks good.

Before you check it in, consider:

  930529-1.x has some alpha bits but I didn’t notice a discussion nor do I have state on the bug to know if the resolution is correct.

As always, people will comment (or just fix) any noticed fallout.
Bernd Schmidt Aug. 25, 2014, 4:13 p.m. UTC | #2
On 08/22/2014 10:39 PM, Mike Stump wrote:
> Before you check it in, consider:
>
> 930529-1.x has some alpha bits but I didn’t notice a discussion nor
> do I have state on the bug to know if the resolution is correct.

Those are commented out, and I assume superseded by the use of -fwrapv.

Thanks!


Bernd
Bernd Schmidt Aug. 28, 2014, 2:27 p.m. UTC | #3
On 08/22/2014 10:39 PM, Mike Stump wrote:
> On Aug 22, 2014, at 5:18 AM, Bernd Schmidt <bernds@codesourcery.com> wrote:
>>
>> Here's another attempt.
>
>> Ok?
>
> Ok.  Thanks a ton for doing the work.

The next question would be what to do with gcc.c-torture/unsorted.  As 
far as I can tell, these are all just plain compile tests, except for 
dump-noaddr.c.  Ok to move all except for that test to 
c-torture/compile, adjusting SFset.c and DFcmp.c which require int32plus?


Bernd
Mike Stump Aug. 28, 2014, 9:02 p.m. UTC | #4
On Aug 28, 2014, at 7:27 AM, Bernd Schmidt <bernds@codesourcery.com> wrote:
> The next question would be what to do with gcc.c-torture/unsorted.  As far as I can tell, these are all just plain compile tests, except for dump-noaddr.c.  Ok to move all except for that test to c-torture/compile, adjusting SFset.c and DFcmp.c which require int32plus?

Ok.
Jeff Law Aug. 29, 2014, 7:55 p.m. UTC | #5
On 08/28/14 08:27, Bernd Schmidt wrote:
> On 08/22/2014 10:39 PM, Mike Stump wrote:
>> On Aug 22, 2014, at 5:18 AM, Bernd Schmidt <bernds@codesourcery.com>
>> wrote:
>>>
>>> Here's another attempt.
>>
>>> Ok?
>>
>> Ok.  Thanks a ton for doing the work.
>
> The next question would be what to do with gcc.c-torture/unsorted.  As
> far as I can tell, these are all just plain compile tests, except for
> dump-noaddr.c.  Ok to move all except for that test to
> c-torture/compile, adjusting SFset.c and DFcmp.c which require int32plus?
They are all just plain compile tests.  They come from Torbjorn's old 
c-torture distribution which formed the first GCC suite.

I can't recall why he had an unsorted directory separate from the 
compile tests.

jeff
Thomas Schwinge Sept. 5, 2014, 10:10 a.m. UTC | #6
Hi!

On Fri, 22 Aug 2014 14:18:32 +0200, Bernd Schmidt <bernds@codesourcery.com> wrote:
> On 07/29/2014 12:36 AM, Joseph S. Myers wrote:
> > On Thu, 24 Jul 2014, Jakub Jelinek wrote:
> >> Yeah.  I believe gcc.c-torture/compile/ has been converted already,
> >> so it is just about gcc.c-torture/execute/.

> >> So, please just tweak execute.exp, so that it does what it did until now
> >> (perhaps with the exception of *.x files support) in dg framework, and
> >> convert *.exp files into dg-* directives in the testcases.
> >
> > And note that this is bug 20567.  Existing dg-* directive uses in
> > gcc.c-torture/execute/ (which are currently ignored) may or may not be
> > correct, so they should be reviewed as part of such a migration to decide
> > whether they should stay or be removed.  (There aren't that many of them
> > to review.)

Should PR20567 now be updated?

> Here's another attempt.  [...]

> --- a/gcc/testsuite/gcc.c-torture/execute/execute.exp
> +++ b/gcc/testsuite/gcc.c-torture/execute/execute.exp
> @@ -22,28 +22,17 @@
>  # C torture test suite.

> -set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS
> +# Main loop.
> +set saved-dg-do-what-default ${dg-do-what-default}
> +set dg-do-what-default "run"
> +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" "-w"
> +set dg-do-what-default ${saved-dg-do-what-default}

> -foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
> -    # If we're only testing specific files and this isn't one of them, skip it.
> -    if ![runtest_file_p $runtests $src] then {
> -	continue
> -    }
> -
> -    c-torture-execute $src
> -}

I noticed that this change causes that the »-Og -g« option combination
(which is part of C_TORTURE_OPTIONS) is no longer being tested with
gcc-dg-runtest.  (The same thing happend for all the tests that were
moved from gcc.c-torture/unsorted/ to gcc.c-torture/compile/.)  Would it
be desirable to restore testing of that option combination, maybe
generally for gcc-dg-runtest, or would that be overkill?


Grüße,
 Thomas
Mike Stump Sept. 5, 2014, 5:12 p.m. UTC | #7
On Sep 5, 2014, at 3:10 AM, Thomas Schwinge <thomas@codesourcery.com> wrote:
> Should PR20567 now be updated?

Updated.
diff mbox

Patch

diff --git a/gcc/testsuite/gcc.c-torture/execute/20010122-1.c b/gcc/testsuite/gcc.c-torture/execute/20010122-1.c
index 280e3d4..14269fa 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010122-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010122-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "requires frame pointers" { *-*-* } "-fomit-frame-pointer" "" } */
 
 extern void exit (int);
 extern void abort (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010122-1.x b/gcc/testsuite/gcc.c-torture/execute/20010122-1.x
deleted file mode 100644
index 6558236..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20010122-1.x
+++ /dev/null
@@ -1,11 +0,0 @@ 
-# This test relies on __builtin_return_address(1) returning something
-# useful or NULL.  This is not guaranteed to be be so, especially when 
-# -fomit-frame-pointer is used.  So do not test with it.
-
-set torture_eval_before_compile {
-  if {[string match {*-fomit-frame-pointer*} "$option"]} {
-    continue
-  }
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010129-1.c b/gcc/testsuite/gcc.c-torture/execute/20010129-1.c
index a4ea5e4..0586577 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20010129-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20010129-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-options "-mtune-i686" { target { { i?86*-*-* } && ilp32 } } } */
+
 long baz1 (void *a)
 {
   static long l;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010129-1.x b/gcc/testsuite/gcc.c-torture/execute/20010129-1.x
deleted file mode 100644
index 7e474c4..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20010129-1.x
+++ /dev/null
@@ -1,13 +0,0 @@ 
-# Use "-mtune=i686" on i?86-*-* unless "-m64" is specified.
-if { [istarget "i?86-*-*"] } {
-  set target_name [target_info name]
-  if {[board_info $target_name exists multilib_flags]} {
-    set multilib_flags [board_info $target_name multilib_flags]
-    if { ![regexp -- "-m64" $multilib_flags] } {
-      set additional_flags "-mtune=i686"
-    }
-  } else {
-    set additional_flags "-mtune=i686"
-  }
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020404-1.c b/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
index dc62b15..fe5ea14 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20020404-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+/* { dg-skip-if "pointers can be truncated" { m32c-*-* } "*" "" } */
 /* Extracted from GDB sources. */
 
 typedef long long bfd_signed_vma;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x b/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
deleted file mode 100644
index e4fd61a..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20020404-1.x
+++ /dev/null
@@ -1,15 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-# m32c pointers can be 24 bits in a 32 bit variable, so the test
-# patterns may get truncated.
-if { [istarget "m32c-*-*"] } {
-	return 1
-}
-
-
-return 0
-
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021024-1.c b/gcc/testsuite/gcc.c-torture/execute/20021024-1.c
index f7d98e9..93504f2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021024-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021024-1.c
@@ -1,4 +1,5 @@ 
 /* Origin: PR target/6981 from Mattias Engdegaard <mattias@virtutech.se>.  */
+/* { dg-require-effective-target int32plus } */
 
 void exit (int);
 void abort (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x b/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20021024-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021127-1.c b/gcc/testsuite/gcc.c-torture/execute/20021127-1.c
index 0b3ff9a..204305b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20021127-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20021127-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-options "-std=c99" } */
+
 long long a = -1;
 long long llabs (long long);
 void abort (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20021127-1.x b/gcc/testsuite/gcc.c-torture/execute/20021127-1.x
deleted file mode 100644
index efd854a..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20021127-1.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-std=c99"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
index 28cfbd1..60ede34 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
@@ -1,4 +1,5 @@ 
 /* Verify whether math functions are simplified.  */
+/* { dg-require-effective-target c99_runtime } */
 double sin(double);
 double floor(double);
 float 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030125-1.x b/gcc/testsuite/gcc.c-torture/execute/20030125-1.x
deleted file mode 100644
index 895cff7..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20030125-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-# Only glibc includes all c99 functions at the moment.
-if { ! ([istarget "*-linux*"]
-	|| [istarget "*-gnu*"])} then {
-    return 1
-}
-if { [check_effective_target_uclibc] } { return 1 }
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030216-1.c b/gcc/testsuite/gcc.c-torture/execute/20030216-1.c
index 2153bfd..0256ae3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030216-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030216-1.c
@@ -1,3 +1,8 @@ 
+/* This test requires constant propagation of loads and stores to be
+   enabled.  This is only guaranteed at -O2 and higher.  Do not run
+   at -O1.  */
+/* { dg-skip-if "requires higher optimization" { *-*-* } "-O1" "" } */
+
 void link_error (void);
 const double one=1.0;
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030216-1.x b/gcc/testsuite/gcc.c-torture/execute/20030216-1.x
deleted file mode 100644
index a0e03e3..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20030216-1.x
+++ /dev/null
@@ -1,12 +0,0 @@ 
-# This test requires constant propagation of loads and stores to be
-# enabled.  This is only guaranteed at -O2 and higher.  Do not run
-# at -O1.
-
-set torture_eval_before_compile {
-  if {[string match {*-O1*} "$option"]} {
-    continue
-  }
-}
-
-return 0
-
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
index 93d1e3c..385ae68 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030222-1.c
@@ -3,7 +3,7 @@ 
    succeeded at all.  We use volatile to make sure the long long is
    actually truncated to int, in case a single register is wide enough
    for a long long.  */
-
+/* { dg-skip-if "asm would require extra shift-left-4-byte" { spu-*-* } "*" "" } */
 #include <limits.h>
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030222-1.x b/gcc/testsuite/gcc.c-torture/execute/20030222-1.x
deleted file mode 100644
index e195563..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20030222-1.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # Using inline assembly to convert long long to int is not working quite
-    # right # on the SPU.  An extra shift-left-4-byte is needed.
-    return 1
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040629-1.c b/gcc/testsuite/gcc.c-torture/execute/20040629-1.c
index 6b3e906..5e03222 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040629-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040629-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+
 /* Test arithmetics on bitfields.  */
 #ifndef T
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040629-1.x b/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040629-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040703-1.c b/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
index eba358d..a1b75d9 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040703-1.c
@@ -1,4 +1,5 @@ 
 /* PR 16341 */
+/* { dg-require-effective-target int32plus } */
 
 #define PART_PRECISION (sizeof (cpp_num_part) * 8)
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040703-1.x b/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040703-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-1.c b/gcc/testsuite/gcc.c-torture/execute/20040705-1.c
index a9ba88e..fe14d0f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040705-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-1.c
@@ -1,2 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
+
 #define FIELDS1 long long l;
 #include "20040629-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-1.x b/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040705-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-2.c b/gcc/testsuite/gcc.c-torture/execute/20040705-2.c
index a36fb6a..1d69586 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040705-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040705-2.c
@@ -1,2 +1,3 @@ 
+/* { dg-require-effective-target int32plus } */
 #define FIELDS2 long long l;
 #include "20040629-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040705-2.x b/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040705-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-1.c b/gcc/testsuite/gcc.c-torture/execute/20040709-1.c
index 455313a..52de67d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040709-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+
 /* Test arithmetics on bitfields.  */
 
 extern void abort (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-1.x b/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040709-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-2.c b/gcc/testsuite/gcc.c-torture/execute/20040709-2.c
index 6ae1f2d..925050d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040709-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040709-2.c
@@ -1,4 +1,5 @@ 
 /* Test arithmetics on bitfields.  */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort (void);
 extern void exit (int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040709-2.x b/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040709-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040811-1.c b/gcc/testsuite/gcc.c-torture/execute/20040811-1.c
index 62f377a..0122825 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20040811-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20040811-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+
 /* Ensure that we deallocate X when branching back before its
    declaration.  */
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20040811-1.x b/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20040811-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.c b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c
index 2a1c625..0a285d7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-1.c
@@ -1,4 +1,6 @@ 
 /* PR rtl-optimization/16104 */
+/* { dg-require-effective-target int32plus } */
+/* { dg-options "-Wno-psabi" } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-1.x b/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
deleted file mode 100644
index cb2d28f..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-1.x
+++ /dev/null
@@ -1,8 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-set additional_flags "-Wno-psabi"
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-2.c b/gcc/testsuite/gcc.c-torture/execute/20050316-2.c
index c648777..920dfdb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-2.c
@@ -1,3 +1,8 @@ 
+/* This testcase generates MMX instructions together with x87 instructions.
+   Currently, there is no "emms" generated to switch between register sets,
+   so the testcase fails for targets where MMX insns are enabled.  */
+/* { dg-options "-mno-mmx -Wno-psabi" { target { x86_64-*-* i?86-*-* } } } */
+
 extern void abort (void);
 
 typedef int V2SI __attribute__ ((vector_size (8)));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-2.x b/gcc/testsuite/gcc.c-torture/execute/20050316-2.x
deleted file mode 100644
index f5b4aaa..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-2.x
+++ /dev/null
@@ -1,9 +0,0 @@ 
-# This testcase generates MMX instructions together with x87 instructions.
-# Currently, there is no "emms" generated to switch between register sets,
-# so the testcase fails for targets where MMX insns are enabled.
-
-if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
-	set additional_flags "-mno-mmx"
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-3.c b/gcc/testsuite/gcc.c-torture/execute/20050316-3.c
index 773243f..9f35ece 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-3.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20050316-3.c
@@ -1,3 +1,4 @@ 
+/* { dg-options "-Wno-psabi" } */
 extern void abort (void);
 
 typedef int V2SI __attribute__ ((vector_size (8)));
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050316-3.x b/gcc/testsuite/gcc.c-torture/execute/20050316-3.x
deleted file mode 100644
index cb7b119..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20050316-3.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-Wno-psabi"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050604-1.c b/gcc/testsuite/gcc.c-torture/execute/20050604-1.c
index 70097aa..6d63389 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20050604-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20050604-1.c
@@ -1,4 +1,8 @@ 
 /* PR regression/21897 */
+/* This testcase generates MMX instructions together with x87 instructions.
+   Currently, there is no "emms" generated to switch between register sets,
+   so the testcase fails for targets where MMX insns are enabled.  */
+/* { dg-options "-mno-mmx" { target { x86_64-*-* i?86-*-* } } } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20050604-1.x b/gcc/testsuite/gcc.c-torture/execute/20050604-1.x
deleted file mode 100644
index 756242d..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20050604-1.x
+++ /dev/null
@@ -1,10 +0,0 @@ 
-# This testcase generates MMX instructions together with x87 instructions.
-# Currently, there is no "emms" generated to switch between register sets,
-# so the testcase fails for targets where MMX insns are enabled.
-
-if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
-	set additional_flags "-mno-mmx"
-}
-
-set additional_flags "-Wno-psabi"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20061101-1.c b/gcc/testsuite/gcc.c-torture/execute/20061101-1.c
index 2351728..7bea079 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20061101-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20061101-1.c
@@ -1,5 +1,6 @@ 
 /* PR rtl-optimization/28970 */
 /* Origin: Peter Bergner <bergner@vnet.ibm.com> */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/20061101-1.x b/gcc/testsuite/gcc.c-torture/execute/20061101-1.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20061101-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20061220-1.c b/gcc/testsuite/gcc.c-torture/execute/20061220-1.c
index 188f92c..9a133e8 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20061220-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20061220-1.c
@@ -1,4 +1,5 @@ 
 /* PR middle-end/30262 */
+/* { dg-skip-if "asm statements do not work as expected" { rl78-*-* } "*" "" } */
 extern void abort (void);
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/20061220-1.x b/gcc/testsuite/gcc.c-torture/execute/20061220-1.x
deleted file mode 100644
index bfc4e96..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20061220-1.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-# asm statements for the RL78 do not work as expected
-if { [istarget "rl78-*-*"] } {
-        return 1;
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20081117-1.c b/gcc/testsuite/gcc.c-torture/execute/20081117-1.c
index bff7464..8fa00d2 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20081117-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20081117-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 extern void abort (void);
 
 struct s
diff --git a/gcc/testsuite/gcc.c-torture/execute/20081117-1.x b/gcc/testsuite/gcc.c-torture/execute/20081117-1.x
deleted file mode 100644
index 7378270..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20081117-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-        return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20101011-1.c b/gcc/testsuite/gcc.c-torture/execute/20101011-1.c
index 9299bb9..85b910d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20101011-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20101011-1.c
@@ -1,5 +1,5 @@ 
-/* With -fnon-call-exceptions 0 / 0 should not be eliminated.  The .x
-   file sets the option.  */
+/* { dg-options "-fnon-call-exceptions" } */
+/* With -fnon-call-exceptions 0 / 0 should not be eliminated.  */
 
 #ifdef SIGNAL_SUPPRESS
 # define DO_TEST 0
@@ -75,6 +75,9 @@  __aeabi_idiv0 (int return_value)
 # define DO_TEST 1
 #endif
 
+extern void abort (void);
+extern void exit (int);
+
 #if DO_TEST
 
 #include <signal.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/20101011-1.x b/gcc/testsuite/gcc.c-torture/execute/20101011-1.x
deleted file mode 100644
index b5c080d..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20101011-1.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fnon-call-exceptions"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120919-1.c b/gcc/testsuite/gcc.c-torture/execute/20120919-1.c
index e7f3295..afcde95 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20120919-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20120919-1.c
@@ -1,5 +1,6 @@ 
 /* PR rtl-optimization/54290 */
 /* Testcase by Eric Volk <eriksnga@gmail.com> */
+/* { dg-require-effective-target int32plus } */
 
 double vd[2] = {1., 0.};
 int vi[2] = {1234567890, 0};
diff --git a/gcc/testsuite/gcc.c-torture/execute/20120919-1.x b/gcc/testsuite/gcc.c-torture/execute/20120919-1.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/20120919-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/920612-1.c b/gcc/testsuite/gcc.c-torture/execute/920612-1.c
index a70c0d2..bc63003 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920612-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920612-1.c
@@ -1,2 +1,7 @@ 
+/* { dg-options "-fwrapv" } */
+
+extern void abort (void);
+extern void exit (int);
+
 f(j)int j;{return++j>0;}
 main(){if(f((~0U)>>1))abort();exit(0);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920612-1.x b/gcc/testsuite/gcc.c-torture/execute/920612-1.x
deleted file mode 100644
index 36a5839..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/920612-1.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fwrapv"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/920710-1.x b/gcc/testsuite/gcc.c-torture/execute/920710-1.x
deleted file mode 100644
index b7612f7..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/920710-1.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-# h8300 does not have long long
-if { [istarget "h8300-*-*"] } {
-        return 1;
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/920711-1.c b/gcc/testsuite/gcc.c-torture/execute/920711-1.c
index aa83452..f72ef7c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920711-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920711-1.c
@@ -1,2 +1,7 @@ 
+/* { dg-options "-fwrapv" } */
+
+extern void abort (void);
+extern void exit (int);
+
 f(long a){return (--a > 0);}
 main(){if(f(0x80000000L)==0)abort();exit(0);}
diff --git a/gcc/testsuite/gcc.c-torture/execute/920711-1.x b/gcc/testsuite/gcc.c-torture/execute/920711-1.x
deleted file mode 100644
index 36a5839..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/920711-1.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fwrapv"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/930529-1.c b/gcc/testsuite/gcc.c-torture/execute/930529-1.c
index 906338e..9c4085c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930529-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930529-1.c
@@ -1,3 +1,8 @@ 
+/* { dg-options { "-fwrapv" } } */
+
+extern void abort (void);
+extern void exit (int);
+
 dd (x,d) { return x / d; }
 
 main ()
diff --git a/gcc/testsuite/gcc.c-torture/execute/930529-1.x b/gcc/testsuite/gcc.c-torture/execute/930529-1.x
deleted file mode 100644
index 25225f4..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/930529-1.x
+++ /dev/null
@@ -1,24 +0,0 @@ 
-# The problem on Alpha at -O3 is that when dd is inlined, we have
-# division by a constant, which gets converted to multiplication
-# by a large constant, which gets turned into an induction variable.
-# The problem is that the multiplication was unsigned SImode, and the
-# induction variable is DImode, and we lose the truncation that
-# should have happened.
-#
-# On tree-ssa branch, the loop problem is still extant, but the
-# gimple-level optimization makes it easy for the tree-rtl expanders
-# to see that the comparisons are always true, and so the loop code
-# is never exercized.
-
-# set torture_eval_before_execute {
-# 
-#     set compiler_conditional_xfail_data {
-#         "division by a constant conflicts with strength reduction" \
-#         "alpha*-*-*" \
-#         { "-O3" } \
-#         { "" }
-#     }
-# }
-
-set additional_flags "-fwrapv"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/931004-12.x b/gcc/testsuite/gcc.c-torture/execute/931004-12.x
deleted file mode 100644
index 591dc7f..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/931004-12.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-if { [istarget "powerpc-*-darwin*] } {
-    # xfail this on powerpc-*-darwin, see PR 15923
-    set torture_execute_xfail [istarget]
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/980709-1.c b/gcc/testsuite/gcc.c-torture/execute/980709-1.c
index cda8076..54b3bbc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/980709-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/980709-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-xfail-if "Can not call system libm.a with -msoft-float" { powerpc-*-aix* rs6000-*-aix* } { "-msoft-float" } { "" } } */
 #include <math.h>
 
 main()
diff --git a/gcc/testsuite/gcc.c-torture/execute/980709-1.x b/gcc/testsuite/gcc.c-torture/execute/980709-1.x
deleted file mode 100644
index 307f568..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/980709-1.x
+++ /dev/null
@@ -1,16 +0,0 @@ 
-# XFAIL this test for AIX using -msoft-float.
-# This test calls the system libm.a function pow.
-# A false failure is reported if -msoft-float is used.
-# AIX expects the parameters to be passed in fp regs. 
-if { [istarget powerpc-*-aix*] || [istarget rs6000-*-aix*] } {
-    set torture_eval_before_execute {
-	global compiler_conditional_xfail_data
-	set compiler_conditional_xfail_data {
-	    "Can not call system libm.a with -msoft-float" \
-		    "*-*-aix*" \
-		    { "-msoft-float" } \
-		    { "" }
-	}
-    }
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/981130-1.c b/gcc/testsuite/gcc.c-torture/execute/981130-1.c
index 72630b0..c4ca227 100644
--- a/gcc/testsuite/gcc.c-torture/execute/981130-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/981130-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-xfail-if "alias analysis conflicts with instruction scheduling" { m32r-*-* } { "-O2" "-O1" "-O0" "-Os"} { "" } } */
 struct s { int a; int b;};
 struct s s1;
 struct s s2 = { 1, 2, };
diff --git a/gcc/testsuite/gcc.c-torture/execute/981130-1.x b/gcc/testsuite/gcc.c-torture/execute/981130-1.x
deleted file mode 100644
index 1565c68..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/981130-1.x
+++ /dev/null
@@ -1,22 +0,0 @@ 
-# This test is known to fail on targets that use the instruction scheduler
-# at optimisation levels of 2 or more because the alias analysis is confused
-# by the reassignment of a variable structure to a fixed structure.  The 
-# failure could be suppressed by preventing instruction scheduling:
-#
-# set additional_flags "-fno-schedule-insns2";
-#
-# but this would disguise the fact that there is a problem.  Instead we use
-# we generate an xfail result and explain that it is alias analysis that
-# is at fault.
-
-set torture_eval_before_execute {
-
-    set compiler_conditional_xfail_data {
-        "alias analysis conflicts with instruction scheduling" \
-	"m32r-*-*" \
-	{ "-O2" "-O1" "-O0" "-Os"} \
-	{ "" }
-	}    
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/990127-1.c b/gcc/testsuite/gcc.c-torture/execute/990127-1.c
index c495848..8b572a7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990127-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990127-1.c
@@ -1,3 +1,6 @@ 
+extern void abort (void);
+extern void exit (int);
+
 main()
 {
     int a,b,c;
diff --git a/gcc/testsuite/gcc.c-torture/execute/990127-2.c b/gcc/testsuite/gcc.c-torture/execute/990127-2.c
index 0d0f495..e87d27a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990127-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990127-2.c
@@ -1,3 +1,8 @@ 
+/* { dg-options "-mpc64"  { target { i?86-*-* x86_64-*-* } } } */
+
+extern void abort (void);
+extern void exit (int);
+
 void
 fpEq (double x, double y)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/990127-2.x b/gcc/testsuite/gcc.c-torture/execute/990127-2.x
deleted file mode 100644
index 501e931..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/990127-2.x
+++ /dev/null
@@ -1,20 +0,0 @@ 
-# On x86 targets, two floating-point double values can't be reliably compared
-# for inequality due to excess precision of 80387 floating-point coprocessor.
-# Use -mpc64 to force 80387 floating-point precision to 64 bits.  This option
-# has no effect on SSE, but it is needed in case of -m32 on x86_64 targets.
-
-if { [istarget i?86-*-darwin*]
-     || [istarget i?86-*-linux*]
-     || [istarget i?86-*-gnu*]
-     || [istarget i?86-*-kfreebsd*-gnu]
-     || [istarget i?86-*-knetbsd*-gnu]
-     || [istarget i?86-*-solaris2*]
-     || [istarget x86_64-*-darwin*]
-     || [istarget x86_64-*-linux*]
-     || [istarget x86_64-*-kfreebsd*-gnu]
-     || [istarget x86_64-*-knetbsd*-gnu]
-     || [istarget x86_64-*-solaris2*] } {
-	set additional_flags "-mpc64"
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/990413-2.c b/gcc/testsuite/gcc.c-torture/execute/990413-2.c
index 262140a..3beb540 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990413-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990413-2.c
@@ -1,4 +1,5 @@ 
 /* This tests for a bug in regstack that was breaking glibc's math library. */
+/* { dg-skip-if "" { ! { i?86-*-* x86_64-*-* } } { "*" } { "" } } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990413-2.x b/gcc/testsuite/gcc.c-torture/execute/990413-2.x
deleted file mode 100644
index 58be1c0..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/990413-2.x
+++ /dev/null
@@ -1,3 +0,0 @@ 
-# This test is x86 specific.
-if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { return 0 }
-return 1
diff --git a/gcc/testsuite/gcc.c-torture/execute/990826-0.c b/gcc/testsuite/gcc.c-torture/execute/990826-0.c
index 2807ea3..c630da7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990826-0.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990826-0.c
@@ -6,6 +6,8 @@  Date: Sun, 06 Jun 1999 23:37:23 -0400
 X-UIDL: 9c1e40c572e3b306464f703461764cd5
 */
 
+/* { dg-xfail-if "Can not call system libm.a with -msoft-float" { powerpc-*-aix* rs6000-*-aix* } { "-msoft-float" } { "" } } */
+
 #include <stdio.h>
 #include <math.h>
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/990826-0.x b/gcc/testsuite/gcc.c-torture/execute/990826-0.x
deleted file mode 100644
index 477c10b..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/990826-0.x
+++ /dev/null
@@ -1,16 +0,0 @@ 
-# XFAIL this test for AIX using -msoft-float.
-# This test calls the system libm.a function floor.
-# A false failure is reported if -msoft-float is used.
-# AIX expects the parameters to be passed in fp regs. 
-if { [istarget powerpc-*-aix*] || [istarget rs6000-*-aix*] } {
-    set torture_eval_before_execute {
-	global compiler_conditional_xfail_data
-	set compiler_conditional_xfail_data {
-	    "Can not call system libm.a with -msoft-float" \
-		    "*-*-aix*" \
-		    { "-msoft-float" } \
-		    { "" }
-	}
-    }
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf64-1.c b/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
index 60028fb..d69a7c4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bf64-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-xfail-if "ABI specifies bitfields cannot exceed 32 bits" { mcore-*-* } "*" "" } */
 struct tmp
 {
   long long int pad : 12;
diff --git a/gcc/testsuite/gcc.c-torture/execute/bf64-1.x b/gcc/testsuite/gcc.c-torture/execute/bf64-1.x
deleted file mode 100644
index f3069f2..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/bf64-1.x
+++ /dev/null
@@ -1,8 +0,0 @@ 
-# The MCore ABI specifies that bitfields may not exceed 32 bits.
-# Hence this tes will fail.
-
-if { [istarget "mcore-*-*"] } {
-	set torture_execute_xfail "mcore-*-*"
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.c b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.c
index 6f7d7e2..13a5c69 100644
--- a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.c
@@ -6,6 +6,8 @@ 
    32-bit systems.  */
 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
 
+/* { dg-require-effective-target int32plus } */
+
 extern void abort (void);
 
 struct s { int a:12, b:20; };
diff --git a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x b/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/bitfld-4.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
index 62832a9..52c8065 100644
--- a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 #define F 140
 #define T 13
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.x b/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/cvt-1.x b/gcc/testsuite/gcc.c-torture/execute/cvt-1.x
deleted file mode 100644
index 997c865..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/cvt-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-# This doesn't work on d10v if ints are not 32 bits
-
-if { [istarget "d10v-*-*"] && ! [string-match "*-mint32*" $CFLAGS] } {
-	set torture_execute_xfail "d10v-*-*"
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/eeprof-1.c b/gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
index 248b8cc..96dab9a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/eeprof-1.c
@@ -1,3 +1,8 @@ 
+/* { dg-options "-finstrument-functions" } */
+/* { dg-xfail-if "" { powerpc-ibm-aix* } "*" "" } */
+
+extern void abort (void);
+
 #define ASSERT(X)	if (!(X)) abort ();
 #define NOCHK __attribute__ ((no_instrument_function))
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/eeprof-1.x b/gcc/testsuite/gcc.c-torture/execute/eeprof-1.x
deleted file mode 100644
index d53f8c2..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/eeprof-1.x
+++ /dev/null
@@ -1,5 +0,0 @@ 
-if { [istarget "powerpc-ibm-aix*"] } {
-        set torture_execute_xfail "powerpc-ibm-aix*"
-}
-set additional_flags "-finstrument-functions"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/execute.exp b/gcc/testsuite/gcc.c-torture/execute/execute.exp
index 9f29ef2..886bd05 100644
--- a/gcc/testsuite/gcc.c-torture/execute/execute.exp
+++ b/gcc/testsuite/gcc.c-torture/execute/execute.exp
@@ -22,28 +22,17 @@ 
 # C torture test suite.
 #
 
-if $tracelevel then {
-    strace $tracelevel
-}
+# Load support procs.
+load_lib gcc-dg.exp
 
-# load support procs
-load_lib torture-options.exp
-load_lib c-torture.exp
+# Initialize `dg'.
+dg-init
 
-torture-init
-set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS
+# Main loop.
+set saved-dg-do-what-default ${dg-do-what-default}
+set dg-do-what-default "run"
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" "-w"
+set dg-do-what-default ${saved-dg-do-what-default}
 
-#
-# main test loop
-#
-
-foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
-    # If we're only testing specific files and this isn't one of them, skip it.
-    if ![runtest_file_p $runtests $src] then {
-	continue
-    }
-
-    c-torture-execute $src
-}
-
-torture-finish
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c b/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c
index 515d416..feb2a34 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 struct big
 {
   int data[1000000];
diff --git a/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.x b/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.x
deleted file mode 100644
index c65423e..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/ipa-sra-2.x
+++ /dev/null
@@ -1,3 +0,0 @@ 
-load_lib target-supports.exp
-
-return  [expr [check_effective_target_int16 ]] 
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2f.c b/gcc/testsuite/gcc.c-torture/execute/loop-2f.c
index 4803d64..539db4b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2f.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-2f.c
@@ -1,3 +1,6 @@ 
+/* { dg-require-effective-target mmap } */
+/* { dg-skip-if "the executable is at the same position the test tries to remap" { m68k-*-linux* } { "*" } { "" } } */
+
 #include <limits.h>
 
 #include <sys/types.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2f.x b/gcc/testsuite/gcc.c-torture/execute/loop-2f.x
deleted file mode 100644
index ad024dd..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2f.x
+++ /dev/null
@@ -1,11 +0,0 @@ 
-load_lib target-supports.exp
-
-if { ! [check_effective_target_mmap] } {
-        return 1
-}
-
-if [istarget "m68k-*-linux*"] {
-    # the executable is at the same position the test tries to remap
-    return 1
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2g.c b/gcc/testsuite/gcc.c-torture/execute/loop-2g.c
index 91af413..0840945 100644
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2g.c
+++ b/gcc/testsuite/gcc.c-torture/execute/loop-2g.c
@@ -1,3 +1,6 @@ 
+/* { dg-require-effective-target mmap } */
+/* { dg-skip-if "the executable is at the same position the test tries to remap" { m68k-*-linux* } { "*" } { "" } } */
+
 #include <limits.h>
 
 #include <sys/types.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/loop-2g.x b/gcc/testsuite/gcc.c-torture/execute/loop-2g.x
deleted file mode 100644
index ad024dd..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/loop-2g.x
+++ /dev/null
@@ -1,11 +0,0 @@ 
-load_lib target-supports.exp
-
-if { ! [check_effective_target_mmap] } {
-        return 1
-}
-
-if [istarget "m68k-*-linux*"] {
-    # the executable is at the same position the test tries to remap
-    return 1
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c b/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
index 5bf840c..49c8c09 100644
--- a/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
+++ b/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target stdint_types } */
+
 #include <stdint.h>
 #include <string.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.x b/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.x
deleted file mode 100644
index 6622e71..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/mode-dependent-address.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { ! [check_effective_target_stdint_types] } {
-	return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/nest-align-1.c b/gcc/testsuite/gcc.c-torture/execute/nest-align-1.c
index 548c887..73c0f64 100644
--- a/gcc/testsuite/gcc.c-torture/execute/nest-align-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/nest-align-1.c
@@ -2,6 +2,9 @@ 
    function.  */
 /* Origin: Joey Ye <joey.ye@intel.com> */
 
+/* Force bigger stack alignment for PowerPC EABI targets.  */
+/* { dg-options "-mno-eabi" { target powerpc-*-eabi* } } */
+
 #include <stddef.h>
 
 typedef int aligned __attribute__((aligned));
diff --git a/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x b/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x
deleted file mode 100644
index 392d9aa..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/nest-align-1.x
+++ /dev/null
@@ -1,5 +0,0 @@ 
-# Force bigger stack alignment for PowerPC EABI targets.
-if { [istarget "powerpc-*-eabi*"] } {
-    set additional_flags "-mno-eabi"
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr19689.c b/gcc/testsuite/gcc.c-torture/execute/pr19689.c
index 608415f..d950315 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr19689.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr19689.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 extern void abort (void);
 
 struct
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr19689.x b/gcc/testsuite/gcc.c-torture/execute/pr19689.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr19689.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c b/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c
index bc0ff78..dedcb65 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c
@@ -1,3 +1,5 @@ 
+/* { dg-options "-fwrapv" } */
+
 #include <limits.h>
 extern void abort ();
 extern void exit (int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x b/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x
deleted file mode 100644
index 36a5839..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fwrapv"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr23047.c b/gcc/testsuite/gcc.c-torture/execute/pr23047.c
index 7557fc2..2c963ab 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr23047.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr23047.c
@@ -1,3 +1,4 @@ 
+/* { dg-options "-fwrapv" } */
 #include <limits.h>
 extern void abort ();
 extern void exit (int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr23047.x b/gcc/testsuite/gcc.c-torture/execute/pr23047.x
deleted file mode 100644
index 36a5839..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr23047.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fwrapv"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr23135.c b/gcc/testsuite/gcc.c-torture/execute/pr23135.c
index 57b5f7c..378ebe7 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr23135.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr23135.c
@@ -1,10 +1,15 @@ 
 /* Based on execute/simd-1.c, modified by joern.rennecke@st.com to
    trigger a reload bug.  Verified for gcc mainline from 20050722 13:00 UTC
    for sh-elf -m4 -O2.  */
+/* { dg-options "-Wno-psabi" } */
+
 #ifndef STACK_SIZE
 #define STACK_SIZE (256*1024)
 #endif
 
+extern void abort (void);
+extern void exit (int);
+
 typedef struct { char c[STACK_SIZE/2]; } big_t;
 
 typedef int __attribute__((mode(SI))) __attribute__((vector_size (8))) vecint;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr23135.x b/gcc/testsuite/gcc.c-torture/execute/pr23135.x
deleted file mode 100644
index cb7b119..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr23135.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-Wno-psabi"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c b/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c
index 9bcc2a9..40758c1 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 extern void abort(void);
 
 unsigned int bar(void) { return 32768; }
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr29797-1.x b/gcc/testsuite/gcc.c-torture/execute/pr29797-1.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr29797-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr31448.c b/gcc/testsuite/gcc.c-torture/execute/pr31448.c
index 720ba92..fb8c247 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr31448.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr31448.c
@@ -1,5 +1,6 @@ 
 /* PR middle-end/31448, this used to ICE during expand because
    reduce_to_bit_field_precision was not ready to handle constants. */
+/* { dg-require-effective-target int32plus } */
 
 typedef struct _st {
     int iIndex : 24;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr31448.x b/gcc/testsuite/gcc.c-torture/execute/pr31448.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr31448.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr35456.c b/gcc/testsuite/gcc.c-torture/execute/pr35456.c
index 175a0b2..17c70bc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr35456.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr35456.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "signed zero not supported" { "vax-*-*" } { "*" } { "" } } */
 extern void abort (void);
 
 double
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr35456.x b/gcc/testsuite/gcc.c-torture/execute/pr35456.x
deleted file mode 100644
index 73b18fb..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr35456.x
+++ /dev/null
@@ -1,3 +0,0 @@ 
-# VAX does not support signed zero.
-if [istarget "vax-*-*"] { return 1 }
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr37573.c b/gcc/testsuite/gcc.c-torture/execute/pr37573.c
index 5891910..173a8d4 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr37573.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr37573.c
@@ -1,4 +1,5 @@ 
 /* PR tree-optimization/37573 */
+/* { dg-require-effective-target int32plus } */
 
 struct S
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr37573.x b/gcc/testsuite/gcc.c-torture/execute/pr37573.x
deleted file mode 100644
index 7378270..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr37573.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-        return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr38151.c b/gcc/testsuite/gcc.c-torture/execute/pr38151.c
index 113a255..5ee058d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr38151.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr38151.c
@@ -1,3 +1,4 @@ 
+/* { dg-options "-Wno-psabi" } */
 void abort (void);
 
 struct S2848
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr38151.x b/gcc/testsuite/gcc.c-torture/execute/pr38151.x
deleted file mode 100644
index cb7b119..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr38151.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-Wno-psabi"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39228.c b/gcc/testsuite/gcc.c-torture/execute/pr39228.c
index 06d8efd..dcd8d53 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr39228.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr39228.c
@@ -1,3 +1,6 @@ 
+/* { dg-options "-mieee" { target sh*-*-* alpha*-*-* } } */
+/* { dg-skip-if "No Inf/NaN support" { spu-*-* } "*" "" } */
+
 extern void abort (void);
 
 static int __attribute__((always_inline)) testf (float b)
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39228.x b/gcc/testsuite/gcc.c-torture/execute/pr39228.x
deleted file mode 100644
index a7d8a82..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr39228.x
+++ /dev/null
@@ -1,10 +0,0 @@ 
-if { [istarget "alpha*-*-*"] || [istarget "sh*-*-*"] } {
-	# alpha and SH require -mieee for this test.
-	set additional_flags "-mieee"
-}
-if [istarget "spu-*-*"] {
-	# No Inf/NaN support on SPU.
-	return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39501.c b/gcc/testsuite/gcc.c-torture/execute/pr39501.c
index 3749d6e..9c1868d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr39501.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr39501.c
@@ -1,4 +1,8 @@ 
 /* { dg-options "-ffast-math" } */
+
+extern void abort (void);
+extern void exit (int);
+
 #define min1(a,b) ((a) < (b) ? (a) : (b))
 #define max1(a,b) ((a) > (b) ? (a) : (b))
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39501.x b/gcc/testsuite/gcc.c-torture/execute/pr39501.x
deleted file mode 100644
index 72527d7..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr39501.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-ffast-math"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr40386.c b/gcc/testsuite/gcc.c-torture/execute/pr40386.c
index ae0ac5a..59cd641 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr40386.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr40386.c
@@ -1,4 +1,8 @@ 
 /* { dg-options "-fno-ira-share-spill-slots" } */
+
+extern void abort (void);
+extern void exit (int);
+
 #define CHAR_BIT 8
 
 #define ROR(a,b) (((a) >> (b)) | ((a) << ((sizeof (a) * CHAR_BIT) - (b))))
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr40386.x b/gcc/testsuite/gcc.c-torture/execute/pr40386.x
deleted file mode 100644
index 12192e2..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr40386.x
+++ /dev/null
@@ -1,2 +0,0 @@ 
-set additional_flags "-fno-ira-share-spill-slots"
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr43220.c b/gcc/testsuite/gcc.c-torture/execute/pr43220.c
index 4709f17..0d6ebfb 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr43220.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr43220.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+
 void *volatile p;
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr43220.x b/gcc/testsuite/gcc.c-torture/execute/pr43220.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr43220.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr44683.c b/gcc/testsuite/gcc.c-torture/execute/pr44683.c
index d0fd446..85eb016 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr44683.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr44683.c
@@ -1,3 +1,4 @@ 
+/* { dg-options "-mieee" { target sh*-*-* } } */
 int __attribute__((noinline,noclone))
 copysign_bug (double x)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr44683.x b/gcc/testsuite/gcc.c-torture/execute/pr44683.x
deleted file mode 100644
index 2041340..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr44683.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-if { [istarget "sh*-*-*"] } {
-	# SH require -mieee for this test.
-	set additional_flags "-mieee"
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr45262.c b/gcc/testsuite/gcc.c-torture/execute/pr45262.c
index 72e186b..45cc8de 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr45262.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr45262.c
@@ -1,5 +1,7 @@ 
 /* PR middle-end/45262 */
 
+/* { dg-require-effective-target int32plus } */
+
 extern void abort (void);
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr45262.x b/gcc/testsuite/gcc.c-torture/execute/pr45262.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr45262.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr47237.c b/gcc/testsuite/gcc.c-torture/execute/pr47237.c
index 2100e15..470c8ee 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr47237.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr47237.c
@@ -1,3 +1,4 @@ 
+/* { dg-xfail-if "can cause stack underflow" { nios2-*-* } "*" "" } */
 #define INTEGER_ARG  5
 
 extern void abort(void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr47237.x b/gcc/testsuite/gcc.c-torture/execute/pr47237.x
deleted file mode 100644
index d5d6988..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr47237.x
+++ /dev/null
@@ -1,6 +0,0 @@ 
-if { [istarget "nios2-*-*"] } {
-    # This test can cause the stack to underflow on Nios II.
-    set torture_execute_xfail [istarget]
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr51581-1.c b/gcc/testsuite/gcc.c-torture/execute/pr51581-1.c
index 396b7aa..14e1e31 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr51581-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr51581-1.c
@@ -1,5 +1,7 @@ 
 /* PR tree-optimization/51581 */
 
+/* { dg-require-effective-target int32plus } */
+
 extern void abort (void);
 
 #define N 4096
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr51581-1.x b/gcc/testsuite/gcc.c-torture/execute/pr51581-1.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr51581-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr51581-2.c b/gcc/testsuite/gcc.c-torture/execute/pr51581-2.c
index dc111c4..e4345b5 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr51581-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr51581-2.c
@@ -1,4 +1,5 @@ 
 /* PR tree-optimization/51581 */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr51581-2.x b/gcc/testsuite/gcc.c-torture/execute/pr51581-2.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr51581-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr52979-1.c b/gcc/testsuite/gcc.c-torture/execute/pr52979-1.c
index 246b1fd..13ecb79 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr52979-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr52979-1.c
@@ -1,5 +1,7 @@ 
 /* PR middle-end/52979 */
 
+/* { dg-require-effective-target int32plus } */
+
 extern void abort (void);
 int c, d, e;
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr52979-1.x b/gcc/testsuite/gcc.c-torture/execute/pr52979-1.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr52979-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr52979-2.c b/gcc/testsuite/gcc.c-torture/execute/pr52979-2.c
index 52f5bb8..91d4fbc 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr52979-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr52979-2.c
@@ -1,4 +1,5 @@ 
 /* PR middle-end/52979 */
+/* { dg-require-effective-target int32plus } */
 
 extern void abort (void);
 int c, d, e;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr52979-2.x b/gcc/testsuite/gcc.c-torture/execute/pr52979-2.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr52979-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr53366-1.x b/gcc/testsuite/gcc.c-torture/execute/pr53366-1.x
deleted file mode 100644
index eeb3846..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr53366-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr56799.c b/gcc/testsuite/gcc.c-torture/execute/pr56799.c
index d9ee26b..a8558ea 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr56799.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr56799.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 
 #include <stdio.h>
 typedef struct { int x; int y;} S;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr56799.x b/gcc/testsuite/gcc.c-torture/execute/pr56799.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr56799.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr57124.c b/gcc/testsuite/gcc.c-torture/execute/pr57124.c
index 835d249..ca60158 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr57124.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr57124.c
@@ -1,3 +1,9 @@ 
+/* { dg-require-effective-target int32plus } */
+/* { dg-options "-fno-strict-overflow" } */
+
+extern void abort (void);
+extern void exit (int);
+
 __attribute__ ((noinline))
 foo(short unsigned int *p1, short unsigned int *p2)
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr57124.x b/gcc/testsuite/gcc.c-torture/execute/pr57124.x
deleted file mode 100644
index da6cfd0..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr57124.x
+++ /dev/null
@@ -1,9 +0,0 @@ 
-load_lib target-supports.exp
-
-set additional_flags "-fno-strict-overflow"
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr57344-2.c b/gcc/testsuite/gcc.c-torture/execute/pr57344-2.c
index 9bf60ca..599071b 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr57344-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr57344-2.c
@@ -1,4 +1,5 @@ 
 /* PR middle-end/57344 */
+/* { dg-require-effective-target int32plus } */
 
 struct __attribute__((packed)) S
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr57344-2.x b/gcc/testsuite/gcc.c-torture/execute/pr57344-2.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr57344-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr58570.c b/gcc/testsuite/gcc.c-torture/execute/pr58570.c
index 6d5116d..28b6efe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr58570.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr58570.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 #pragma pack(1)
 struct S
 {
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr58570.x b/gcc/testsuite/gcc.c-torture/execute/pr58570.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr58570.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr60822.c b/gcc/testsuite/gcc.c-torture/execute/pr60822.c
index d225331..dcd2447 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr60822.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr60822.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 struct X {
     char fill0[800000];
     int a;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr60822.x b/gcc/testsuite/gcc.c-torture/execute/pr60822.x
deleted file mode 100644
index 4efed4c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr60822.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int32plus] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.c b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
index de0057c..067f322 100644
--- a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.c
@@ -2,6 +2,7 @@ 
    DR#081), not undefined.  Bug 7284 from Al Grant (AlGrant at
    myrealbox.com).  */
 
+/* { dg-require-effective-target int32plus } */
 /* { dg-options "-std=c89" } */
 
 extern void abort (void);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x b/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/pr7284-1.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/shiftdi.c b/gcc/testsuite/gcc.c-torture/execute/shiftdi.c
index 44f0dfc..7e04098 100644
--- a/gcc/testsuite/gcc.c-torture/execute/shiftdi.c
+++ b/gcc/testsuite/gcc.c-torture/execute/shiftdi.c
@@ -1,3 +1,5 @@ 
+/* { dg-require-effective-target int32plus } */
+
 /* Failed on sparc with -mv8plus because sparc.c:set_extends() thought
    erroneously that SImode ASHIFT chops the upper bits, it does not.  */
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x b/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/shiftdi.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-4.c b/gcc/testsuite/gcc.c-torture/execute/simd-4.c
index 5b9c785..8a92cfe 100644
--- a/gcc/testsuite/gcc.c-torture/execute/simd-4.c
+++ b/gcc/testsuite/gcc.c-torture/execute/simd-4.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target stdint_types } */
 #include <stdint.h>
 typedef int32_t __attribute__((vector_size(8))) v2si;
 int64_t s64;
diff --git a/gcc/testsuite/gcc.c-torture/execute/simd-4.x b/gcc/testsuite/gcc.c-torture/execute/simd-4.x
deleted file mode 100644
index 2e7510c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/simd-4.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_stdint_types] } {
-	return 0
-}
-
-return 1;
diff --git a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c b/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
index dee904f..c5d39fd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/strncmp-1.c
@@ -1,3 +1,4 @@ 
+/* { dg-xfail-if "kernel strncmp does not perform unsigned comparisons" { vxworks_kernel } "*" "" } */
 /* Copyright (C) 2002  Free Software Foundation.
 
    Test strncmp with various combinations of pointer alignments and lengths to
diff --git a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.x b/gcc/testsuite/gcc.c-torture/execute/strncmp-1.x
deleted file mode 100644
index b555e0c..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/strncmp-1.x
+++ /dev/null
@@ -1,16 +0,0 @@ 
-if {[istarget i?86-*-vxworks*]
-    || [istarget mips*-*-vxworks*]
-    || [istarget sh*-*-vxworks*]
-    || [istarget sparc*-*-vxworks*]} {
-    # The kernel strncmp doesn't perform unsigned comparisons.
-    set torture_eval_before_execute {
-	global compiler_conditional_xfail_data
-	set compiler_conditional_xfail_data {
-	    "The kernel strncmp doesn't perform unsigned comparisons."
-	    { "*-*-*" }
-	    {}
-	    { "-mrtp" }
-	}
-    }
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/usmul.c b/gcc/testsuite/gcc.c-torture/execute/usmul.c
index 28501b5..42b447a 100644
--- a/gcc/testsuite/gcc.c-torture/execute/usmul.c
+++ b/gcc/testsuite/gcc.c-torture/execute/usmul.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 int __attribute__ ((noinline)) foo (short x, unsigned short y)
 {
   return x * y;
diff --git a/gcc/testsuite/gcc.c-torture/execute/usmul.x b/gcc/testsuite/gcc.c-torture/execute/usmul.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/usmul.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-5.c b/gcc/testsuite/gcc.c-torture/execute/vrp-5.c
index 8f3c725..8df557c 100644
--- a/gcc/testsuite/gcc.c-torture/execute/vrp-5.c
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-5.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 extern void exit (int);
 extern void abort ();
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-5.x b/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/vrp-5.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-6.c b/gcc/testsuite/gcc.c-torture/execute/vrp-6.c
index 7c6a175..90ebd2d 100644
--- a/gcc/testsuite/gcc.c-torture/execute/vrp-6.c
+++ b/gcc/testsuite/gcc.c-torture/execute/vrp-6.c
@@ -1,3 +1,4 @@ 
+/* { dg-require-effective-target int32plus } */
 #include <limits.h>
 
 extern void exit (int);
diff --git a/gcc/testsuite/gcc.c-torture/execute/vrp-6.x b/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
deleted file mode 100644
index 121fcfe..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/vrp-6.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-load_lib target-supports.exp
-
-if { [check_effective_target_int16] } {
-	return 1
-}
-
-return 0;
diff --git a/gcc/testsuite/gcc.c-torture/execute/zerolen-2.c b/gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
index 446e582..4a55acd 100644
--- a/gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
+++ b/gcc/testsuite/gcc.c-torture/execute/zerolen-2.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "assumes absence of larger-than-word padding" { epiphany-*-* } "*" "" } */
 extern void abort(void);
 
 typedef int word __attribute__((mode(word)));
diff --git a/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x b/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x
deleted file mode 100644
index cee203d..0000000
--- a/gcc/testsuite/gcc.c-torture/execute/zerolen-2.x
+++ /dev/null
@@ -1,7 +0,0 @@ 
-if [istarget "epiphany-*-*"] {
-    # This test assumes the absence of larger-than-word padding.
-    # to make this true for struct foo on epiphany would require
-    # __attribute__((packed,aligned(__alignof__(word)))) .
-    return 1
-}
-return 0
diff --git a/gcc/testsuite/gcc.c-torture/execute/20111227-2.c b/gcc/testsuite/gcc.dg/20111227-2.c
similarity index 94%
rename from gcc/testsuite/gcc.c-torture/execute/20111227-2.c
rename to gcc/testsuite/gcc.dg/20111227-2.c
index 692c947..1266db3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20111227-2.c
+++ b/gcc/testsuite/gcc.dg/20111227-2.c
@@ -1,6 +1,6 @@ 
 /* Testcase derived from 20111227-1.c to ensure that REE is combining
    redundant zero extends with zero extend to wider mode.  */
-/* { dg-options "-fdump-rtl-ree -O" } */
+/* { dg-options "-fdump-rtl-ree -O -free" } */
 extern void abort (void);
 
 unsigned short s;
diff --git a/gcc/testsuite/gcc.c-torture/execute/20111227-3.c b/gcc/testsuite/gcc.dg/20111227-3.c
similarity index 94%
rename from gcc/testsuite/gcc.c-torture/execute/20111227-3.c
rename to gcc/testsuite/gcc.dg/20111227-3.c
index d6726c4..a750db3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/20111227-3.c
+++ b/gcc/testsuite/gcc.dg/20111227-3.c
@@ -1,6 +1,6 @@ 
 /* Testcase derived from 20111227-1.c to ensure that REE is combining
    redundant sign extends with sign extend to wider mode.  */
-/* { dg-options "-fdump-rtl-ree -O" } */
+/* { dg-options "-fdump-rtl-ree -O -free" } */
 
 extern void abort (void);