> -----Original Message-----
> From: Richard Sandiford <richard.sandif...@arm.com>
> Sent: 19 April 2021 20:34
> To: gcc-patches@gcc.gnu.org
> Cc: Richard Earnshaw <richard.earns...@arm.com>; Kyrylo Tkachov
> <kyrylo.tkac...@arm.com>
> Subject: [PATCH] Adjust guality xfails for aarch64*-*-*
> 
> This patch gives clean guality.exp test results for aarch64-linux-gnu
> with modern (top-of-tree) gdb.
> 
> For people using older gdbs, it will trade one set of noisy results for
> another set.  I still think it's better to have the xfails based on
> one “clean” and “modern” run rather than have FAILs and XPASSes for
> all runs.
> 
> It's hard to tell which of these results are aarch64-specific and
> which aren't.  If other target maintainers want to do something similar,
> and are prepared to assume the same gdb version, then it should become
> clearer over time which ones are target-specific and which aren't.
> 
> There are no new skips here, so changes in test results will still
> show up as XPASSes.
> 
> I've not analysed the failures or filed PRs for them.  In some
> ways the guality directory itself seems like the best place to
> start looking for xfails, if someone's interested in working
> in this area.
> 
> Tested on aarch64-linux-gnu.  I'd like to install this once the
> earlier no-opts/any-opts patch is in, but please let me know
> if you think it's a bad idea.

It's okay with me.
Thanks,
Kyrill

> 
> Richard
> 
> 
> gcc/testsuite/
>       * gcc.dg/guality/example.c: Update aarch64*-*-* xfails.
>       * gcc.dg/guality/guality.c: Likewise.
>       * gcc.dg/guality/inline-params.c: Likewise.
>       * gcc.dg/guality/loop-1.c: Likewise.
>       * gcc.dg/guality/pr36728-1.c: Likewise.
>       * gcc.dg/guality/pr36728-2.c: Likewise.
>       * gcc.dg/guality/pr36728-3.c: Likewise.
>       * gcc.dg/guality/pr41447-1.c: Likewise.
>       * gcc.dg/guality/pr54200.c:  Likewise.
>       * gcc.dg/guality/pr54519-1.c: Likewise.
>       * gcc.dg/guality/pr54519-2.c: Likewise.
>       * gcc.dg/guality/pr54519-3.c: Likewise.
>       * gcc.dg/guality/pr54519-4.c: Likewise.
>       * gcc.dg/guality/pr54519-5.c: Likewise.
>       * gcc.dg/guality/pr54519-6.c: Likewise.
>       * gcc.dg/guality/pr54693-2.c: Likewise.
>       * gcc.dg/guality/pr56154-1.c: Likewise.
>       * gcc.dg/guality/pr59776.c: Likewise.
>       * gcc.dg/guality/pr68860-1.c: Likewise.
>       * gcc.dg/guality/pr68860-2.c: Likewise.
>       * gcc.dg/guality/pr90074.c: Likewise.
>       * gcc.dg/guality/pr90716.c: Likewise.
>       * gcc.dg/guality/sra-1.c: Likewise.
> ---
>  gcc/testsuite/gcc.dg/guality/example.c       |  3 +-
>  gcc/testsuite/gcc.dg/guality/guality.c       |  2 +-
>  gcc/testsuite/gcc.dg/guality/inline-params.c |  2 +-
>  gcc/testsuite/gcc.dg/guality/loop-1.c        |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr36728-1.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr36728-2.c     | 30 ++++++++++----------
>  gcc/testsuite/gcc.dg/guality/pr36728-3.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr41447-1.c     |  1 +
>  gcc/testsuite/gcc.dg/guality/pr54200.c       |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr54519-1.c     |  8 +++---
>  gcc/testsuite/gcc.dg/guality/pr54519-2.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr54519-3.c     |  8 +++---
>  gcc/testsuite/gcc.dg/guality/pr54519-4.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr54519-5.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr54519-6.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr54693-2.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr56154-1.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr59776.c       | 12 ++++----
>  gcc/testsuite/gcc.dg/guality/pr68860-1.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr68860-2.c     |  2 +-
>  gcc/testsuite/gcc.dg/guality/pr90074.c       |  4 +--
>  gcc/testsuite/gcc.dg/guality/pr90716.c       |  2 +-
>  gcc/testsuite/gcc.dg/guality/sra-1.c         |  8 +++---
>  23 files changed, 53 insertions(+), 51 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/example.c
> b/gcc/testsuite/gcc.dg/guality/example.c
> index 26d25c28590..6f1c017a253 100644
> --- a/gcc/testsuite/gcc.dg/guality/example.c
> +++ b/gcc/testsuite/gcc.dg/guality/example.c
> @@ -1,5 +1,6 @@
> -/* { dg-do run { xfail *-*-* } } */
> +/* { dg-do run { xfail { ! aarch64*-*-* } } } */
>  /* { dg-options "-g" } */
> +/* { dg-xfail-run-if "" aarch64*-*-* "*" { "-O[01g]" } } */
> 
>  #define GUALITY_DONT_FORCE_LIVE_AFTER -1
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/guality.c
> b/gcc/testsuite/gcc.dg/guality/guality.c
> index db015e6a558..a4de5646fc7 100644
> --- a/gcc/testsuite/gcc.dg/guality/guality.c
> +++ b/gcc/testsuite/gcc.dg/guality/guality.c
> @@ -1,4 +1,4 @@
> -/* { dg-do run { xfail *-*-* } } */
> +/* { dg-do run { xfail { ! aarch64*-*-* } } } */
>  /* { dg-options "-g" } */
>  /* { dg-require-effective-target alloca } */
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/inline-params.c
> b/gcc/testsuite/gcc.dg/guality/inline-params.c
> index f4c5f15094c..6be240a28d2 100644
> --- a/gcc/testsuite/gcc.dg/guality/inline-params.c
> +++ b/gcc/testsuite/gcc.dg/guality/inline-params.c
> @@ -3,7 +3,7 @@
>     inlining inlines the functions too early to test the real IPA passes (such
>     as IPA-CP).  */
>  /* { dg-options "-g -fno-early-inlining -fno-ipa-sra" } */
> -/* { dg-xfail-run-if "" { "*-*-*" } { "-O2" "-O3" "-Os" } } */
> +/* { dg-xfail-run-if "" { ! aarch64*-*-* } { "-O2" "-O3" "-Os" } } */
> 
>  #define GUALITY_DONT_FORCE_LIVE_AFTER -1
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/loop-1.c
> b/gcc/testsuite/gcc.dg/guality/loop-1.c
> index 8da447d5379..1b1f6d32271 100644
> --- a/gcc/testsuite/gcc.dg/guality/loop-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/loop-1.c
> @@ -17,6 +17,6 @@ foo (int n)
>    /* The following works only with final value replacement or with the NOP
>       but not without (which means -Og).  Vectorization breaks it, so disable
>       that.  At -O3 it currently fails, PR89983.  */
> -  __asm__ volatile (NOP : : "g" (i) : "memory"); /* { dg-final { gdb-test . 
> "i"
> "1" } } */
> +  __asm__ volatile (NOP : : "g" (i) : "memory"); /* { dg-final { gdb-test . 
> "i"
> "1" { xfail { aarch64*-*-* && { any-opts "-ftracer" } } } } } */
>  }
>  int main() { foo(1); }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr36728-1.c
> b/gcc/testsuite/gcc.dg/guality/pr36728-1.c
> index 0ab475ab047..5864c2a733a 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr36728-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr36728-1.c
> @@ -32,7 +32,7 @@ foo (int arg1, int arg2, int arg3, int arg4, int arg5, int
> arg6, int arg7)
>  /* { dg-final { gdb-test 16 "arg5" "5" } } */
>  /* { dg-final { gdb-test 16 "arg6" "6" } } */
>  /* { dg-final { gdb-test 16 "arg7" "30" } } */
> -/* { dg-final { gdb-test 16 "y" "2" } } */
> +/* { dg-final { gdb-test 16 "y" "2" { xfail { aarch64*-*-* && { any-opts 
> "-fno-
> fat-lto-objects" } } } } } */
>  /* { dg-final { gdb-test 18 "arg1" "1" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 18 "arg2" "2" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 18 "arg3" "3" } } */
> diff --git a/gcc/testsuite/gcc.dg/guality/pr36728-2.c
> b/gcc/testsuite/gcc.dg/guality/pr36728-2.c
> index 7ba8663e26e..6e8d775f9ac 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr36728-2.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr36728-2.c
> @@ -25,21 +25,21 @@ foo (int arg1, int arg2, int arg3, int arg4, int arg5, int
> arg6, int arg7)
>     and arg2.  So it is expected that these values are unavailable in
>     some of these tests.  */
> 
> -/* { dg-final { gdb-test 16 "arg1" "1" { target { ! "s390*-*-*" } } } } */
> -/* { dg-final { gdb-test 16 "arg2" "2" { target { ! "s390*-*-*" } } } } */
> -/* { dg-final { gdb-test 16 "arg3" "3" } } */
> -/* { dg-final { gdb-test 16 "arg4" "4" } } */
> -/* { dg-final { gdb-test 16 "arg5" "5" } } */
> -/* { dg-final { gdb-test 16 "arg6" "6" } } */
> -/* { dg-final { gdb-test 16 "arg7" "30" } } */
> -/* { dg-final { gdb-test 16 "y" "2" } } */
> -/* { dg-final { gdb-test 18 "arg1" "1" { target { ! "s390*-*-*" } } } } */
> -/* { dg-final { gdb-test 18 "arg2" "2" { target { ! "s390*-*-*" } } } } */
> -/* { dg-final { gdb-test 18 "arg3" "3" } } */
> -/* { dg-final { gdb-test 18 "arg4" "4" } } */
> -/* { dg-final { gdb-test 18 "arg5" "5" } } */
> -/* { dg-final { gdb-test 18 "arg6" "6" } } */
> -/* { dg-final { gdb-test 18 "arg7" "30" } } */
> +/* { dg-final { gdb-test 16 "arg1" "1" { target { ! "s390*-*-*" } xfail
> { aarch64*-*-* && { any-opts "-fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg2" "2" { target { ! "s390*-*-*" } xfail
> { aarch64*-*-* && { any-opts "-fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg3" "3" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg4" "4" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg5" "5" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg6" "6" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "arg7" "30" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 16 "y" "2" { xfail { aarch64*-*-* && { any-opts 
> "-fno-
> fat-lto-objects" } } } } } */
> +/* { dg-final { gdb-test 18 "arg1" "1" { target { ! "s390*-*-*" } xfail
> { aarch64*-*-* && { any-opts "-fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg2" "2" { target { ! "s390*-*-*" } xfail
> { aarch64*-*-* && { any-opts "-fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg3" "3" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg4" "4" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg5" "5" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg6" "6" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
> +/* { dg-final { gdb-test 18 "arg7" "30" { xfail { aarch64*-*-* && { any-opts 
> "-
> fno-fat-lto-objects" "-O3" } } } } } */
>  /* { dg-final { gdb-test 18 "*x" "(char) 25" } } */
>  /* { dg-final { gdb-test 18 "y" "2" } } */
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/pr36728-3.c
> b/gcc/testsuite/gcc.dg/guality/pr36728-3.c
> index 4700d50f8bc..589009b2e82 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr36728-3.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr36728-3.c
> @@ -30,7 +30,7 @@ foo (int arg1, int arg2, int arg3, int arg4, int arg5, int
> arg6, int arg7)
>  /* { dg-final { gdb-test 14 "arg5" "5" } } */
>  /* { dg-final { gdb-test 14 "arg6" "6" } } */
>  /* { dg-final { gdb-test 14 "arg7" "30" } } */
> -/* { dg-final { gdb-test 14 "y" "2" } } */
> +/* { dg-final { gdb-test 14 "y" "2" { xfail { aarch64*-*-* && { any-opts "-
> O3" } } } } } */
>  /* { dg-final { gdb-test 16 "arg1" "1" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg2" "2" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg3" "3" } } */
> diff --git a/gcc/testsuite/gcc.dg/guality/pr41447-1.c
> b/gcc/testsuite/gcc.dg/guality/pr41447-1.c
> index 308ef94967d..9fde33e59a6 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr41447-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr41447-1.c
> @@ -1,5 +1,6 @@
>  /* { dg-do run } */
>  /* { dg-options "-g" } */
> +/* { dg-xfail-run-if "" { aarch64*-*-* } { "-O2" "-O3" "-Os" } { 
> "-fno-fat-lto-
> objects" } } */
> 
>  #include "guality.h"
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54200.c
> b/gcc/testsuite/gcc.dg/guality/pr54200.c
> index e873d1b7b91..ba142217f5a 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54200.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54200.c
> @@ -17,7 +17,7 @@ foo (int z, int x, int b)
>    else
>      {
>        int a = (x + z) + b;
> -      return a; /* { dg-final { gdb-test . "z" "3" } } */
> +      return a; /* { dg-final { gdb-test . "z" "3" { xfail { aarch64*-*-* && 
> { no-
> opts "-O0" "-Og" } } } } } */
>      }
>  }
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-1.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-1.c
> index a4105abf99b..81703eb1744 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-1.c
> @@ -16,11 +16,11 @@ fn2 (int x, int y, int z)
>      {
>        fn1 (x);
>        fn1 (x);               /* { dg-final { gdb-test .+2 "x" "36" } } */
> -      if (x == 36)   /* { dg-final { gdb-test .+1 "y" "25" } } */
> -     fn1 (x);        /* { dg-final { gdb-test . "z" "6" } } */
> +      if (x == 36)   /* { dg-final { gdb-test .+1 "y" "25" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
> +     fn1 (x);        /* { dg-final { gdb-test . "z" "6" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
>        fn1 (x);               /* { dg-final { gdb-test .+2 "x" "98" } } */
> -      if (x == 98)   /* { dg-final { gdb-test .+1 "y" "117" } } */
> -     fn1 (x);        /* { dg-final { gdb-test . "z" "8" } } */
> +      if (x == 98)   /* { dg-final { gdb-test .+1 "y" "117" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
> +     fn1 (x);        /* { dg-final { gdb-test . "z" "8" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
>        fn1 (x);
>        fn1 (x + a);
>      }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-2.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-2.c
> index 6bc16830e20..e1368bf63cc 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-2.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-2.c
> @@ -14,7 +14,7 @@ fn2 (int x, int y)
>    if (y)
>      {
>        fn1 (x);               /* { dg-final { gdb-test .+1 "x" "6" } } */
> -      fn1 (x);               /* { dg-final { gdb-test . "y" "25" } } */
> +      fn1 (x);               /* { dg-final { gdb-test . "y" "25" { xfail { 
> aarch64*-*-*
> && { any-opts "-flto" } } } } } */
>        fn1 (x);
>        fn1 (x);
>        y = -2 + x;
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-3.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-3.c
> index da18247b47b..fabab963d72 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-3.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-3.c
> @@ -16,11 +16,11 @@ fn2 (int x, int y, int z)
>      {
>        fn1 (x);
>        fn1 (x);               /* { dg-final { gdb-test .+2 "x" "36" } } */
> -      if (x == 36)   /* { dg-final { gdb-test .+1 "y" "25" } } */
> -     fn1 (x);        /* { dg-final { gdb-test . "z" "6" } } */
> +      if (x == 36)   /* { dg-final { gdb-test .+1 "y" "25" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
> +     fn1 (x);        /* { dg-final { gdb-test . "z" "6" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
>        fn1 (x);               /* { dg-final { gdb-test .+2 "x" "98" } } */
> -      if (x == 98)   /* { dg-final { gdb-test .+1 "y" "117" } } */
> -     fn1 (x);        /* { dg-final { gdb-test . "z" "8" } } */
> +      if (x == 98)   /* { dg-final { gdb-test .+1 "y" "117" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
> +     fn1 (x);        /* { dg-final { gdb-test . "z" "8" { xfail { 
> aarch64*-*-* &&
> { any-opts "-flto" } } } } } */
>        fn1 (x);
>        fn1 (x + a);
>      }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-4.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-4.c
> index c82de580bf9..fd8465fb72a 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-4.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-4.c
> @@ -14,7 +14,7 @@ fn2 (int x, int y)
>    if (y)
>      {
>        fn1 (x);               /* { dg-final { gdb-test .+1 "x" "6" } } */
> -      fn1 (x);               /* { dg-final { gdb-test . "y" "25" } } */
> +      fn1 (x);               /* { dg-final { gdb-test . "y" "25" { xfail { 
> aarch64*-*-*
> && { any-opts "-flto" } } } } } */
>        fn1 (x);
>        fn1 (x);
>        y = -2 + x;
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-5.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-5.c
> index 0903fbf8946..76fa1e3ad02 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-5.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-5.c
> @@ -14,7 +14,7 @@ fn2 (int x, int y)
>    if (y)
>      {
>        fn1 (x);               /* { dg-final { gdb-test .+1 "x" "6" } } */
> -      fn1 (x);               /* { dg-final { gdb-test . "y" "25" } } */
> +      fn1 (x);               /* { dg-final { gdb-test . "y" "25" { xfail { 
> aarch64*-*-*
> && { any-opts "-flto" } } } } } */
>        fn1 (x);
>        fn1 (x);
>        y = -2 + x;
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54519-6.c
> b/gcc/testsuite/gcc.dg/guality/pr54519-6.c
> index bb3fb5f995e..732c268e45e 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54519-6.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54519-6.c
> @@ -7,7 +7,7 @@
>  static inline void
>  f1 (int x, int y)
>  {
> -  asm volatile (NOP);        /* { dg-final { gdb-test .+1 "x" "2" } } */
> +  asm volatile (NOP);        /* { dg-final { gdb-test .+1 "x" "2" { xfail { 
> aarch64*-*-
> * && { any-opts "-Os" } } } } } */
>    asm volatile (NOP);        /* { dg-final { gdb-test . "y" "0" } } */
>  }
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/pr54693-2.c
> b/gcc/testsuite/gcc.dg/guality/pr54693-2.c
> index 1741a383f59..68aa6c63d71 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr54693-2.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr54693-2.c
> @@ -19,7 +19,7 @@ foo (int x, int y, int z)
>      {                /* { dg-final { gdb-test .+2 "i" "v + 1" } } */
>               /* { dg-final { gdb-test .+1 "x" "10 - i" } } */
>        bar (i);       /* { dg-final { gdb-test . "y" "20 - 2 * i" } } */
> -             /* { dg-final { gdb-test .-1 "z" "30 - 3 * i" } } */
> +             /* { dg-final { gdb-test .-1 "z" "30 - 3 * i" { xfail { 
> aarch64*-*-*
> && { any-opts "-fno-fat-lto-objects" "-Os" } } } } } */
>        i++, x--, y -= 2, z -= 3;
>      }
>  }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr56154-1.c
> b/gcc/testsuite/gcc.dg/guality/pr56154-1.c
> index 4f02bc96e21..d6da4a74b26 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr56154-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr56154-1.c
> @@ -17,7 +17,7 @@ foo (int fd, union U x)
>    asm (NOP : : : "memory");    /* { dg-final { gdb-test pr56154-1.c:17 "x.a"
> "4" } } */
>    z = x.a;
>    x.a = 6;
> -  asm (NOP : : : "memory");    /* { dg-final { gdb-test pr56154-1.c:20 "x.a"
> "6" } } */
> +  asm (NOP : : : "memory");    /* { dg-final { gdb-test pr56154-1.c:20 "x.a"
> "6" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
>    return result;
>  }
> 
> diff --git a/gcc/testsuite/gcc.dg/guality/pr59776.c
> b/gcc/testsuite/gcc.dg/guality/pr59776.c
> index 9777f6229de..0e4855959ef 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr59776.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr59776.c
> @@ -9,13 +9,13 @@ struct S { float f, g; };
>  __attribute__((noipa)) void
>  foo (struct S *p)
>  {
> -  struct S s1, s2;                   /* { dg-final { gdb-test pr59776.c:17
> "s1.f" "5.0" } } */
> -  s1 = *p;                           /* { dg-final { gdb-test pr59776.c:17
> "s1.g" "6.0" } } */
> -  s2 = s1;                           /* { dg-final { gdb-test pr59776.c:17
> "s2.f" "0.0" } } */
> +  struct S s1, s2;                   /* { dg-final { gdb-test pr59776.c:17
> "s1.f" "5.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
> +  s1 = *p;                           /* { dg-final { gdb-test pr59776.c:17
> "s1.g" "6.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
> +  s2 = s1;                           /* { dg-final { gdb-test pr59776.c:17
> "s2.f" "0.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
>    *(int *) &s2.f = 0;                        /* { dg-final { gdb-test 
> pr59776.c:17
> "s2.g" "6.0" { xfail { no-opts "-O0" } } } } */
> -  asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr59776.c:20
> "s1.f" "5.0" } } */
> -  asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr59776.c:20
> "s1.g" "6.0" } } */
> -  s2 = s1;                           /* { dg-final { gdb-test pr59776.c:20
> "s2.f" "5.0" } } */
> +  asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr59776.c:20
> "s1.f" "5.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
> +  asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr59776.c:20
> "s1.g" "6.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
> +  s2 = s1;                           /* { dg-final { gdb-test pr59776.c:20
> "s2.f" "5.0" { xfail { aarch64*-*-* && { any-opts "-Og" } } } } } */
>    asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr59776.c:20
> "s2.g" "6.0" { xfail { no-opts "-O0" } } } } */
>    asm volatile (NOP : : : "memory");
>  }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr68860-1.c
> b/gcc/testsuite/gcc.dg/guality/pr68860-1.c
> index 8c8d8354587..bbd9d6e6032 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr68860-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr68860-1.c
> @@ -31,7 +31,7 @@ foo (int arg1, int arg2, int arg3, int arg4, int arg5, int
> arg6, int arg7, int a
>  /* { dg-final { gdb-test 14 "arg6" "6" } } */
>  /* { dg-final { gdb-test 14 "arg7" "30" } } */
>  /* { dg-final { gdb-test 14 "arg8" "7" } } */
> -/* { dg-final { gdb-test 14 "y" "2" } } */
> +/* { dg-final { gdb-test 14 "y" "2" { xfail { aarch64*-*-* && { { any-opts 
> "-O2"
> "-O3" } && { no-opts "-flto" } } } } } } */
>  /* { dg-final { gdb-test 16 "arg1" "1" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg2" "2" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg3" "3" } } */
> diff --git a/gcc/testsuite/gcc.dg/guality/pr68860-2.c
> b/gcc/testsuite/gcc.dg/guality/pr68860-2.c
> index 070efbcd10c..a18a04e60b2 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr68860-2.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr68860-2.c
> @@ -31,7 +31,7 @@ foo (int arg1, int arg2, int arg3, int arg4, int arg5, int
> arg6, int arg7, int a
>  /* { dg-final { gdb-test 14 "arg6" "6" } } */
>  /* { dg-final { gdb-test 14 "arg7" "30" } } */
>  /* { dg-final { gdb-test 14 "arg8" "7" } } */
> -/* { dg-final { gdb-test 14 "y" "2" } } */
> +/* { dg-final { gdb-test 14 "y" "2" { xfail { aarch64*-*-* && { any-opts "-
> O3" } } } } } */
>  /* { dg-final { gdb-test 16 "arg1" "1" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg2" "2" { target { ! "s390*-*-*" } } } } */
>  /* { dg-final { gdb-test 16 "arg3" "3" } } */
> diff --git a/gcc/testsuite/gcc.dg/guality/pr90074.c
> b/gcc/testsuite/gcc.dg/guality/pr90074.c
> index 12949282516..2fd884209f2 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr90074.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr90074.c
> @@ -25,7 +25,7 @@ int main()
>       debug stmt for the final value of the loop during loop distribution
>       which would fix the UNSUPPORTED cases.
>       c is optimized out at -Og for no obvious reason.  */
> -  optimize_me_not(); /* { dg-final { gdb-test . "i + 1" "8" } } */
> -    /* { dg-final { gdb-test .-1 "c + 1" "2" } } */
> +  optimize_me_not(); /* { dg-final { gdb-test . "i + 1" "8" { xfail { 
> aarch64*-*-
> * && { any-opts "-fno-fat-lto-objects" } } } } } */
> +    /* { dg-final { gdb-test .-1 "c + 1" "2" { xfail { aarch64*-*-* && { 
> any-opts
> "-fno-fat-lto-objects" } } } } } */
>    return 0;
>  }
> diff --git a/gcc/testsuite/gcc.dg/guality/pr90716.c
> b/gcc/testsuite/gcc.dg/guality/pr90716.c
> index b2f5c9d146e..fe7e5567625 100644
> --- a/gcc/testsuite/gcc.dg/guality/pr90716.c
> +++ b/gcc/testsuite/gcc.dg/guality/pr90716.c
> @@ -20,6 +20,6 @@ int main()
>       Instead test j + 1 which will make the test UNSUPPORTED if i
>       is optimized out.  Since the test previously had wrong debug
>       with j == 0 this is acceptable.  */
> -  optimize_me_not(); /* { dg-final { gdb-test . "j + 1" "9" } } */
> +  optimize_me_not(); /* { dg-final { gdb-test . "j + 1" "9" { xfail { 
> aarch64*-*-
> * && { any-opts "-fno-fat-lto-objects" } } } } } */
>    return 0;
>  }
> diff --git a/gcc/testsuite/gcc.dg/guality/sra-1.c
> b/gcc/testsuite/gcc.dg/guality/sra-1.c
> index 8ad57cf3f8e..e9b920ecd66 100644
> --- a/gcc/testsuite/gcc.dg/guality/sra-1.c
> +++ b/gcc/testsuite/gcc.dg/guality/sra-1.c
> @@ -18,7 +18,7 @@ f1 (int k)
>    asm ("" : "+r" (a.i));
>    a.j++;
>    bar (a.i);         /* { dg-final { gdb-test .+1 "a.i" "4" } } */
> -  bar (a.j);         /* { dg-final { gdb-test . "a.j" "14" } } */
> +  bar (a.j);         /* { dg-final { gdb-test . "a.j" "14" { xfail { 
> aarch64*-
> *-* && { any-opts "-fno-fat-lto-objects" } } } } } */
>    return a.i + a.j;
>  }
> 
> @@ -29,7 +29,7 @@ f2 (int k)
>    asm ("" : "+r" (a[0]));
>    a[1]++;
>    bar (a[0]);                /* { dg-final { gdb-test .+1 "a\[0\]" "4" } } */
> -  bar (a[1]);                /* { dg-final { gdb-test . "a\[1\]" "14" } } */
> +  bar (a[1]);                /* { dg-final { gdb-test . "a\[1\]" "14" { xfail
> { aarch64*-*-* && { any-opts "-fno-fat-lto-objects" } } } } } */
>    return a[0] + a[1];
>  }
> 
> @@ -39,8 +39,8 @@ f3 (int k)
>    struct B a = { 4, k + 6 };
>    asm ("" : "+r" (a.i));
>    a.j++;
> -  bar (a.i);         /* { dg-final { gdb-test .+1 "a.i" "4" } } */
> -  bar (a.j);         /* { dg-final { gdb-test . "a.j" "14" } } */
> +  bar (a.i);         /* { dg-final { gdb-test .+1 "a.i" "4" { xfail { 
> aarch64*-
> *-* && { any-opts "-Og" } } } } } */
> +  bar (a.j);         /* { dg-final { gdb-test . "a.j" "14" { xfail { 
> aarch64*-
> *-* && { any-opts "-Og" "-fno-fat-lto-objects" } } } } } */
>    return a.i + a.j;
>  }
> 

Reply via email to