Hi,

on 2024/4/22 17:38, Alexandre Oliva wrote:
> Ping?
> https://gcc.gnu.org/pipermail/gcc-patches/2021-March/566530.html
> (modified version follows)

Segher originated this test case, I was expecting he can chime in this. :)

> 
> 
> We've observed failures of this test on powerpc configurations that
> default to different calling conventions and alignment requirements.

It seems that it was using the original "BE" and "LE" guards to shadow
ABIs, could you share some more on how you found this failure?  It seems
that your test environment with -mstrict-align turned on by default?  And
also having a ABI which passing small struct return value in register?

BR,
Kewen


> Both settings are needed for the original expectations to be met.
> 
> The test was later modified to have different expectations for big and
> little endian code generation.  This patch restores the original
> codegen expectations, that, with the explicit options, don't vary any
> more.
> 
> Regstrapped on x86_64-linux-gnu and ppc64el-linux-gnu.  Also tested with
> gcc-13 on ppc64-vx7r2 and ppc-vx7r2.  Ok to install?
> 
> 
> for  gcc/testsuite/ChangeLog
> 
>       * gcc.target/powerpc/pr88233.c: Make some alignment strictness
>       and calling conventions assumptions explicit.  Restore uniform
>       codegen expectations
> ---
>  gcc/testsuite/gcc.target/powerpc/pr88233.c |    7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.target/powerpc/pr88233.c 
> b/gcc/testsuite/gcc.target/powerpc/pr88233.c
> index 27c73717a3f79..46a3ebfa28775 100644
> --- a/gcc/testsuite/gcc.target/powerpc/pr88233.c
> +++ b/gcc/testsuite/gcc.target/powerpc/pr88233.c
> @@ -1,5 +1,5 @@
>  /* { dg-require-effective-target lp64 } */
> -/* { dg-options "-O2 -mdejagnu-cpu=power8" } */
> +/* { dg-options "-O2 -mdejagnu-cpu=power8 -mno-strict-align 
> -fpcc-struct-return" } */
>  
>  typedef struct { double a[2]; } A;
>  A
> @@ -9,6 +9,5 @@ foo (const A *a)
>  }
>  
>  /* { dg-final { scan-assembler-not {\mmtvsr} } } */
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M} 1 { target { be } } } } */
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M} 1 { target { be } } } } */
> -/* { dg-final { scan-assembler-times {\mlfd\M} 2 { target { le } } } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M} 1 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M} 1 } } */
> 
> 

Reply via email to