Hi, The attached patch splits each test-case into three, one for float, double and long-double. I verified that the long double tests are unsupported now for arm target. OK to commit ?
Thanks, Prathamesh
2016-08-04 Prathamesh Kulkarni <prathamesh.kulka...@linaro.org> testsuite/ * gcc.dg/tree-ssa/pr71078-1.c: Remove double and long double test-cases. * gcc.dg/tree-ssa/pr71078-1-double.c: New test-case. * gcc.dg/tree-ssa/pr71078-1-long-double.c: Likewise. * gcc.dg/tree-ssa/pr71078-2.c: Remove double and long double test-cases. * gcc.dg/tree-ssa/pr71078-2-double.c: New test-case. * gcc.dg/tree-ssa/pr71078-2-long-double.c: Likewise. * gcc.dg/tree-ssa/pr71078-3.c: Add require-effective-check for large_double. 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>