Commit 28621a5c by David Edelsohn Committed by David Edelsohn

re PR target/68609 (PowerPC reciprocal estimate missed opportunities)

        PR target/68609
        * gcc.target/powerpc/recip-1.c: Adjust for Goldschmidt's Algorithm.
        * gcc.target/powerpc/recip-2.c: Same.
        * gcc.target/powerpc/recip-3.c: Same.
        * gcc.target/powerpc/recip-4.c: Same.
        * gcc.target/powerpc/recip-sqrtf.c: Same.

From-SVN: r232456
parent 3d076231
2016-01-15 David Edelsohn <dje.gcc@gmail.com>
PR target/68609
* gcc.target/powerpc/recip-1.c: Adjust for Goldschmidt's Algorithm.
* gcc.target/powerpc/recip-2.c: Same.
* gcc.target/powerpc/recip-3.c: Same.
* gcc.target/powerpc/recip-4.c: Same.
* gcc.target/powerpc/recip-sqrtf.c: Same.
2016-01-15 Jeff Law <law@redhat.com> 2016-01-15 Jeff Law <law@redhat.com>
PR tree-optimization/69270 PR tree-optimization/69270
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power6" } */ /* { dg-options "-O2 -mrecip -ffast-math -mcpu=power6" } */
/* { dg-final { scan-assembler-times "frsqrte" 2 } } */ /* { dg-final { scan-assembler-times "frsqrte" 2 } } */
/* { dg-final { scan-assembler-times "fmsub" 2 } } */ /* { dg-final { scan-assembler-times "fmul" 4 } } */
/* { dg-final { scan-assembler-times "fmul" 6 } } */
/* { dg-final { scan-assembler-times "fnmsub" 3 } } */ /* { dg-final { scan-assembler-times "fnmsub" 3 } } */
/* { dg-final { scan-assembler-times "fmadd" 4 } } */
double double
rsqrt_d (double a) rsqrt_d (double a)
......
...@@ -3,9 +3,10 @@ ...@@ -3,9 +3,10 @@
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power5" } } */ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power5" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power5" } */ /* { dg-options "-O2 -mrecip -ffast-math -mcpu=power5" } */
/* { dg-final { scan-assembler-times "frsqrtes" 1 } } */ /* { dg-final { scan-assembler-times "frsqrtes" 1 } } */
/* { dg-final { scan-assembler-times "fmsubs" 1 } } */ /* { dg-final { scan-assembler-times "fmuls" 2 } } */
/* { dg-final { scan-assembler-times "fmuls" 6 } } */
/* { dg-final { scan-assembler-times "fnmsubs" 3 } } */ /* { dg-final { scan-assembler-times "fnmsubs" 3 } } */
/* { dg-final { scan-assembler-times "fmadds" 5 } } */
/* { dg-final { scan-assembler-times "fadds" 1 } } */
/* { dg-final { scan-assembler-times "fsqrt" 1 } } */ /* { dg-final { scan-assembler-times "fsqrt" 1 } } */
/* power5 resqrte is not accurate enough, and should not be generated by /* power5 resqrte is not accurate enough, and should not be generated by
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power7" } */ /* { dg-options "-O2 -mrecip -ffast-math -mcpu=power7" } */
/* { dg-final { scan-assembler-times "xsrsqrtedp\|frsqrte\ " 1 } } */ /* { dg-final { scan-assembler-times "xsrsqrtedp\|frsqrte\ " 1 } } */
/* { dg-final { scan-assembler-times "xsmsub.dp\|fmsub\ " 1 } } */ /* { dg-final { scan-assembler-times "xsmuldp\|fmul\ " 2 } } */
/* { dg-final { scan-assembler-times "xsmuldp\|fmul\ " 4 } } */
/* { dg-final { scan-assembler-times "xsnmsub.dp\|fnmsub\ " 2 } } */ /* { dg-final { scan-assembler-times "xsnmsub.dp\|fnmsub\ " 2 } } */
/* { dg-final { scan-assembler-times "xsmadd.dp\|fmadd\ " 3 } } */
/* { dg-final { scan-assembler-times "xsrsqrtesp\|frsqrtes" 1 } } */ /* { dg-final { scan-assembler-times "xsrsqrtesp\|frsqrtes" 1 } } */
/* { dg-final { scan-assembler-times "xsmsub.sp\|fmsubs" 1 } } */
/* { dg-final { scan-assembler-times "xsmulsp\|fmuls" 2 } } */ /* { dg-final { scan-assembler-times "xsmulsp\|fmuls" 2 } } */
/* { dg-final { scan-assembler-times "xsmadd.sp\|fmadds" 1 } } */
/* { dg-final { scan-assembler-times "xsnmsub.sp\|fnmsubs" 1 } } */ /* { dg-final { scan-assembler-times "xsnmsub.sp\|fnmsubs" 1 } } */
double double
......
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
/* { dg-options "-O3 -ftree-vectorize -mrecip -ffast-math -mcpu=power7 -fno-unroll-loops" } */ /* { dg-options "-O3 -ftree-vectorize -mrecip -ffast-math -mcpu=power7 -fno-unroll-loops" } */
/* { dg-final { scan-assembler-times "xvrsqrtedp" 1 } } */ /* { dg-final { scan-assembler-times "xvrsqrtedp" 1 } } */
/* { dg-final { scan-assembler-times "xvmsub.dp" 1 } } */ /* { dg-final { scan-assembler-times "xvmuldp" 2 } } */
/* { dg-final { scan-assembler-times "xvmuldp" 4 } } */
/* { dg-final { scan-assembler-times "xvnmsub.dp" 2 } } */ /* { dg-final { scan-assembler-times "xvnmsub.dp" 2 } } */
/* { dg-final { scan-assembler-times "xvmadd.dp" 3 } } */
/* { dg-final { scan-assembler-times "xvrsqrtesp" 1 } } */ /* { dg-final { scan-assembler-times "xvrsqrtesp" 1 } } */
/* { dg-final { scan-assembler-times "xvmsub.sp" 1 } } */
/* { dg-final { scan-assembler-times "xvmulsp" 2 } } */ /* { dg-final { scan-assembler-times "xvmulsp" 2 } } */
/* { dg-final { scan-assembler-times "xvnmsub.sp" 1 } } */ /* { dg-final { scan-assembler-times "xvnmsub.sp" 1 } } */
/* { dg-final { scan-assembler-times "xvmadd.sp" 1 } } */
#define SIZE 1024 #define SIZE 1024
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -mcpu=power5 -mrecip" } */ /* { dg-options "-O2 -ffast-math -mcpu=power6 -mrecip" } */
extern float sqrtf (float); extern float sqrtf (float);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment