diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.c b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
index 3ad8c1a2dd7b0e061ce2becc32925b574bfab292..aa598875aa599585506f9845dbddcaaf7b7cd868 100644
--- a/gcc/testsuite/gcc.dg/vect/pr101145inf.c
+++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
@@ -1,4 +1,4 @@
-/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
+/* { dg-require-effective-target signal } */
 /* { dg-additional-options "-O3" } */
 #include <limits.h>
 #include "pr101145inf.inc"
diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.inc b/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
index 4aa3d0491878ff0a96e7e08d695b9a294c6e01ea..eb855b9881ab9db24f24341d52ca508bdb63b6a3 100644
--- a/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
+++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
@@ -1,6 +1,7 @@
 #include <unistd.h>
 #include <signal.h>
 #include <stdlib.h>
+#include "tree-vect.h"
 
 void test_finite ();
 void test_infinite ();
@@ -10,7 +11,8 @@ void do_exit (int i)
   exit (0);
 }
 
-int main(void)
+__attribute__((noinline))
+int main1(void)
 {
   test_finite ();
   struct sigaction s;
@@ -26,3 +28,8 @@ int main(void)
   return 1;
 }
 
+int main(void)
+{
+  check_vect ();
+  return main1();
+}
diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
index e3e9dd46d10a0ca0c3a02e75590c93a2ee63b320..0465788c3ccaf2ee7deef3f088e34a6b47bc1cb9 100644
--- a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
+++ b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
@@ -1,4 +1,4 @@
-/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
+/* { dg-require-effective-target signal } */
 /* { dg-additional-options "-O3" } */
 #include <limits.h>
 #include "pr101145inf.inc"