diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-double.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-double.c
new file mode 100644
index 0000000..3ef9efd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-double.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target large_double } */
+/* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
+
+#include <math.h>
+
+double f2(double x)
+{
+  double t1 = fabs (x);
+  double t2 = x / t1;
+  return t2;
+}
+
+/* { dg-final { scan-tree-dump "__builtin_copysign" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-long-double.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-long-double.c
new file mode 100644
index 0000000..a528246
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1-long-double.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target large_long_double } */
+/* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
+
+#include <math.h>
+
+long double f3 (long double x)
+{
+  long double t1 = fabsl (x);
+  long double t2 = x / t1;
+  return t2;
+}
+
+/* { dg-final { scan-tree-dump "__builtin_copysignl" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1.c
index 6204c14..10e3c35 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-1.c
@@ -10,20 +10,4 @@ float f1(float x)
   return t2;
 }
  
-double f2(double x)
-{
-  double t1 = fabs (x);
-  double t2 = x / t1;
-  return t2;
-}
-
-long double f3 (long double x)
-{
-  long double t1 = fabsl (x);
-  long double t2 = x / t1;
-  return t2;
-}
-
 /* { dg-final { scan-tree-dump "__builtin_copysignf" "forwprop1" } } */
-/* { dg-final { scan-tree-dump "__builtin_copysign" "forwprop1" } } */
-/* { dg-final { scan-tree-dump "__builtin_copysignl" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-double.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-double.c
new file mode 100644
index 0000000..4ef1e4d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-double.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target large_double } */
+/* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
+
+#include <math.h>
+
+double f2(double x)
+{
+  double t1 = fabs (x);
+  double t2 = t1 / x; 
+  return t2;
+}
+
+/* { dg-final { scan-tree-dump "__builtin_copysign" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-long-double.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-long-double.c
new file mode 100644
index 0000000..2eaf02d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2-long-double.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target large_long_double } */
+/* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
+
+#include <math.h>
+
+long double f3 (long double x)
+{
+  long double t1 = fabsl (x);
+  long double t2 = t1 / x; 
+  return t2;
+}
+
+/* { dg-final { scan-tree-dump "__builtin_copysignl" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2.c
index 96485af..7ce61a1 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-2.c
@@ -10,20 +10,4 @@ float f1(float x)
   return t2;
 }
  
-double f2(double x)
-{
-  double t1 = fabs (x);
-  double t2 = t1 / x; 
-  return t2;
-}
-
-long double f3 (long double x)
-{
-  long double t1 = fabsl (x);
-  long double t2 = t1 / x; 
-  return t2;
-}
-
 /* { dg-final { scan-tree-dump "__builtin_copysignf" "forwprop1" } } */
-/* { dg-final { scan-tree-dump "__builtin_copysign" "forwprop1" } } */
-/* { dg-final { scan-tree-dump "__builtin_copysignl" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-3.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-3.c
index 8780b6a..8871a69 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr71078-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71078-3.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target large_double } */
 /* { dg-options "-O2 -ffast-math -fdump-tree-forwprop-details" } */
 
 #include <math.h>
