diff mbox series

Adjust guality xfails for aarch64*-*-*

Message ID mpt8s5errvu.fsf@arm.com
State New
Headers show
Series Adjust guality xfails for aarch64*-*-* | expand

Commit Message

Richard Sandiford April 19, 2021, 7:33 p.m. UTC
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.

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(-)

Comments

Kyrylo Tkachov April 20, 2021, 9:04 a.m. UTC | #1
> -----Original Message-----
> From: Richard Sandiford <richard.sandiford@arm.com>
> Sent: 19 April 2021 20:34
> To: gcc-patches@gcc.gnu.org
> Cc: Richard Earnshaw <Richard.Earnshaw@arm.com>; Kyrylo Tkachov
> <Kyrylo.Tkachov@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;
>  }
>
diff mbox series

Patch

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;
 }