Hi Bill,

On Mon, Feb 04, 2019 at 03:01:24PM -0600, Bill Seurer wrote:
> [PATCH, rs6000] Fix instruction counts on powerpc64 test cases.
> 
> This patch fixes the assembler instruction counts for some test cases
> that started failing due to changes in code generation.  The targets
> were adjusted a bit as well to avoid generating BE/LE endian code on
> unsupported platforms.
> 
> Bootstrapped and tested on powerpc64le-unknown-linux-gnu (power 8 and
> power 9) and powerpc64be-unknown-linux-gnu (power 7 and power 8) with
> no regressions.  Is this ok for trunk?

> Index: gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
> ===================================================================
> --- gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c        (revision 
> 268524)
> +++ gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c        (working copy)
> @@ -1,28 +1,21 @@
> -/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
> +/* { dg-do compile { target { powerpc64-*-* && lp64 } } } */
> +/* Note: powerpc64-*-* is BE only. */

Target powerpc64-linux does not mean we are creating 64-bit code, or BE
for that matter; nor the other way around.  It just says what the default
is.

If you want to test only when generating code for 64-bit BE targets, use

/* { dg-do compile { target { powerpc*-*-* && { lp64 && be } } } } */

But, powerpc*-*-* is guaranteed here anyway, so you can do just

/* { dg-do compile { target { lp64 && be } } } */

> -/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } 
> { "-mcpu=power7" } } */
> +/* { dg-skip-if "do not override -mcpu" { powerpc64-*-* } { "-mcpu=*" } 
> { "-mcpu=power7" } } */

Don't change this please; it was correct.  It could also be

/* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { 
"-mcpu=power7" } } */

(for the same reason: everything in gcc.target/powerpc is only run for
 powerpc*-*-*).

>  /* Expected instruction counts for Power 7 */
> 
>  /* { dg-final { scan-assembler-times "xvabsdp" 1 } } */
>  /* { dg-final { scan-assembler-times "xvadddp" 1 } } */
> -/* { dg-final { scan-assembler-times "xxlnor" 8 { target le } } } */
> -/* { dg-final { scan-assembler-times "xxlnor" 7 { target be } } } */
> -/* { dg-final { scan-assembler-times "xvcmpeqdp" 5 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpeqdp" 6 { target be }} } */
> -/* { dg-final { scan-assembler-times "xvcmpeqdp." 5 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpeqdp." 6 { target be } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgtdp" 9 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgtdp" 8 { target be } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgtdp." 9 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgtdp." 8 { target be } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgedp" 6 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgedp" 7 { target be } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgedp." 6 { target le } } } */
> -/* { dg-final { scan-assembler-times "xvcmpgedp." 7 { target be } } } */
> +/* { dg-final { scan-assembler-times "xxlnor" 5 } } */
> +/* { dg-final { scan-assembler-times "xvcmpeqdp" 6 } } */
> +/* { dg-final { scan-assembler-times "xvcmpeqdp." 6 } } */
> +/* { dg-final { scan-assembler-times "xvcmpgtdp" 7 } } */
> +/* { dg-final { scan-assembler-times "xvcmpgtdp." 7 } } */
> +/* { dg-final { scan-assembler-times "xvcmpgedp" 7 } } */
> +/* { dg-final { scan-assembler-times "xvcmpgedp." 7 } } */
>  /* { dg-final { scan-assembler-times "xvrdpim" 1 } } */
>  /* { dg-final { scan-assembler-times "xvmaddadp" 1 } } */
>  /* { dg-final { scan-assembler-times "xvmsubadp" 1 } } */

Do we not want to test this on LE anymore?  Oh, P7, heh.  Okay.  Not
enough coffee yet :-)

> +/* { dg-final { scan-assembler-times "xvcmpgedp" 6 } } */
> +/* { dg-final { scan-assembler-times "xvcmpgedp." 6 } } */

These need fixing still: both of these match
  xvcmpgedp 0,1,2
because dot means "any character", in a regexp.  Maybe

/* { dg-final { scan-assembler-times {\mxvcmpgedp\s} 6 } } */
/* { dg-final { scan-assembler-times {\mxvcmpgedp\.\s} 6 } } */

(and with the counts fixed).  (Same for all other dot insns of course).


Segher

Reply via email to