+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>
PR tree-optimization/69270
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power6" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power6" } */
/* { dg-final { scan-assembler-times "frsqrte" 2 } } */
-/* { dg-final { scan-assembler-times "fmsub" 2 } } */
-/* { dg-final { scan-assembler-times "fmul" 6 } } */
+/* { dg-final { scan-assembler-times "fmul" 4 } } */
/* { dg-final { scan-assembler-times "fnmsub" 3 } } */
+/* { dg-final { scan-assembler-times "fmadd" 4 } } */
double
rsqrt_d (double a)
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power5" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power5" } */
/* { dg-final { scan-assembler-times "frsqrtes" 1 } } */
-/* { dg-final { scan-assembler-times "fmsubs" 1 } } */
-/* { dg-final { scan-assembler-times "fmuls" 6 } } */
+/* { dg-final { scan-assembler-times "fmuls" 2 } } */
/* { 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 } } */
/* power5 resqrte is not accurate enough, and should not be generated by
/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
/* { dg-options "-O2 -mrecip -ffast-math -mcpu=power7" } */
/* { dg-final { scan-assembler-times "xsrsqrtedp\|frsqrte\ " 1 } } */
-/* { dg-final { scan-assembler-times "xsmsub.dp\|fmsub\ " 1 } } */
-/* { dg-final { scan-assembler-times "xsmuldp\|fmul\ " 4 } } */
+/* { dg-final { scan-assembler-times "xsmuldp\|fmul\ " 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 "xsmsub.sp\|fmsubs" 1 } } */
/* { 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 } } */
double
/* { 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-final { scan-assembler-times "xvrsqrtedp" 1 } } */
-/* { dg-final { scan-assembler-times "xvmsub.dp" 1 } } */
-/* { dg-final { scan-assembler-times "xvmuldp" 4 } } */
+/* { dg-final { scan-assembler-times "xvmuldp" 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 "xvmsub.sp" 1 } } */
/* { dg-final { scan-assembler-times "xvmulsp" 2 } } */
/* { dg-final { scan-assembler-times "xvnmsub.sp" 1 } } */
+/* { dg-final { scan-assembler-times "xvmadd.sp" 1 } } */
#define SIZE 1024
/* { dg-do compile } */
-/* { dg-options "-O2 -ffast-math -mcpu=power5 -mrecip" } */
+/* { dg-options "-O2 -ffast-math -mcpu=power6 -mrecip" } */
extern float sqrtf (float);