Noting that the motivation here is to avoid (as far as possible) applying
darwin-specific changes to the tests unless unavoidable.  In the case of
tests that do not check all of their assumptions - it seems a generic
fix is better (c.f. skipping on darwin, for example).

>>Darwin does not support big-endian at all and so even the presence of the
>>option causes a test fail.
>>An alternate strategy is to skip all those tests for darwin.
>>Which mechanism is preferred is, of course, your call.

>Yeah I think it makes sense to add a check effective target check to check for
>-mbig-endian support (so codegen) and then we can add that one to the tests
>and exclude Darwin.

.. which we agree on...

>That way the codegen tests keep working on Linux.

Oops, my goof here; I had not intended this - and, more annoyingly, had
fixed a similar scenario for the mcmodel cases (to be posted).

The solution is to use a _nocache version of the test.  Re-tested on
aarch64-linux and aarch64-darwin, OK for trunk?
thanks
Iain

--- 8< ---

The testsuite provides an idiom where the flags associated with a patch
are considered when the target supports are evaluated.  These variants
of the tests have _nocache appended.

We provide a _nocache variant for aarch64_big_endian here.

Use this aarch64_big_endian_nocache effective target to ensure that
little-endian targets able to generate big-endian code are still tested;
targets without -mbig-endian support (e.g. Darwin) are correctly skipped.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/and-be.c: Require big-endian support.
        * gcc.target/aarch64/fmov-1-be.c: Likewise.
        * gcc.target/aarch64/fmov-2-be.c: Likewise.
        * gcc.target/aarch64/fmov-3-be.c: Likewise.
        * gcc.target/aarch64/fmov-4-be.c: Likewise.
        * gcc.target/aarch64/fmov-5-be.c: Likewise.
        * gcc.target/aarch64/ins_bitfield_2.c: Likewise.
        * gcc.target/aarch64/ins_bitfield_4.c: Likewise.
        * gcc.target/aarch64/ins_bitfield_6.c: Likewise.
        * gcc.target/aarch64/pr124078-1.c: Likewise.
        * gcc.target/aarch64/pr62308.c: Likewise.
        * gcc.target/aarch64/pr87305.c: Likewise.
        * gcc.target/aarch64/sve/acle/general/dupq_2.c: Likewise.
        * gcc.target/aarch64/sve/acle/general/dupq_4.c: Likewise.
        * gcc.target/aarch64/sve/acle/general/dupq_6.c: Likewise.
        * gcc.target/aarch64/sve/acle/general/dupq_lane_9.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_bf16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_f16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_f32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_f64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_mf8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_s16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_s32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_s64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_s8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_u16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_u32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_u64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_5_be_u8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_bf16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_f16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_f32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_f64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_mf8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_s16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_s32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_s64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_s8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_u16.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_u32.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_u64.c: Likewise.
        * gcc.target/aarch64/sve/pcs/args_6_be_u8.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_4_be.c: Likewise.
        * gcc.target/aarch64/sve/pcs/saves_5_be.c: Likewise.
        * gcc.target/aarch64/sve/pr88847.c: Likewise.
        * gcc.target/aarch64/sve/revb_2.c: Likewise.
        * gcc.target/aarch64/sve/revh_2.c: Likewise.
        * gcc.target/aarch64/sve/revhw_2.c: Likewise.
        * gcc.target/aarch64/sve/revw_2.c: Likewise.
        * gcc.target/aarch64/sve/struct_move_1.c: Likewise.
        * gcc.target/aarch64/sve/struct_move_2.c: Likewise.
        * gcc.target/aarch64/sve/struct_move_3.c: Likewise.
        * gcc.target/aarch64/sve/vec_init_4.c: Likewise.
        * lib/target-supports.exp: Provide a _nocache version
        of aarch64_big_endian.

Signed-off-by: Iain Sandoe <[email protected]>
---
 gcc/testsuite/gcc.target/aarch64/and-be.c                | 1 +
 gcc/testsuite/gcc.target/aarch64/fmov-1-be.c             | 1 +
 gcc/testsuite/gcc.target/aarch64/fmov-2-be.c             | 1 +
 gcc/testsuite/gcc.target/aarch64/fmov-3-be.c             | 1 +
 gcc/testsuite/gcc.target/aarch64/fmov-4-be.c             | 1 +
 gcc/testsuite/gcc.target/aarch64/fmov-5-be.c             | 1 +
 gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c        | 1 +
 gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c        | 1 +
 gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c        | 1 +
 gcc/testsuite/gcc.target/aarch64/pr124078-1.c            | 1 +
 gcc/testsuite/gcc.target/aarch64/pr62308.c               | 1 +
 gcc/testsuite/gcc.target/aarch64/pr87305.c               | 1 +
 .../gcc.target/aarch64/sve/acle/general/dupq_2.c         | 1 +
 .../gcc.target/aarch64/sve/acle/general/dupq_4.c         | 1 +
 .../gcc.target/aarch64/sve/acle/general/dupq_6.c         | 1 +
 .../gcc.target/aarch64/sve/acle/general/dupq_lane_9.c    | 1 +
 .../gcc.target/aarch64/sve/pcs/args_5_be_bf16.c          | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c  | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c  | 1 +
 .../gcc.target/aarch64/sve/pcs/args_6_be_bf16.c          | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c  | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c  | 1 +
 .../gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c       | 1 +
 .../gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c         | 1 +
 .../gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c       | 1 +
 .../gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c         | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c    | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c    | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/pr88847.c           | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/revb_2.c            | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/revh_2.c            | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c           | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/revw_2.c            | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c     | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c     | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c     | 1 +
 gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c        | 1 +
 gcc/testsuite/lib/target-supports.exp                    | 9 +++++++--
 58 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/gcc.target/aarch64/and-be.c 
b/gcc/testsuite/gcc.target/aarch64/and-be.c
index 7457dd5e35c..f5f765695f6 100644
--- a/gcc/testsuite/gcc.target/aarch64/and-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/and-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 typedef short v4hi __attribute__ ((vector_size (8)));
diff --git a/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c 
b/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
index 4227c677248..3722f9d7b67 100644
--- a/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #pragma GCC target ("arch=armv8-a")
diff --git a/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c 
b/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
index 1e38066b4cf..af2f59c71e4 100644
--- a/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #pragma GCC target ("arch=armv8.2-a+fp16")
diff --git a/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c 
b/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
index 0bddd96ea00..03d71b9b73d 100644
--- a/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #pragma GCC target ("arch=armv8-a")
diff --git a/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c 
b/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
index 58212ef435e..09c1103cd29 100644
--- a/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #pragma GCC target ("arch=armv8.2-a+fp16")
diff --git a/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c 
b/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
index 0fcefa7c948..f7a274779e5 100644
--- a/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
+++ b/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #pragma GCC target ("arch=armv8.2-a+fp16")
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c 
b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
index 152418889fa..c480f56feca 100644
--- a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-options "-O2 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 typedef unsigned char v16qi __attribute__((vector_size(16)));
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c 
b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
index 98e25c86959..582685ac646 100644
--- a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-options "-O2 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
 
 struct di_qi_1 { unsigned char c[4]; unsigned int x; };
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c 
b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
index cb8af6b0623..fe53a8921fa 100644
--- a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-options "-O2 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 struct di_qi_1 { unsigned char c[4]; unsigned int x; };
diff --git a/gcc/testsuite/gcc.target/aarch64/pr124078-1.c 
b/gcc/testsuite/gcc.target/aarch64/pr124078-1.c
index fa6f6bccacb..1df41ed104b 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr124078-1.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr124078-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 /* PR rtl-optimization/124078 */
 
diff --git a/gcc/testsuite/gcc.target/aarch64/pr62308.c 
b/gcc/testsuite/gcc.target/aarch64/pr62308.c
index 1cf6e212dca..047d7471a15 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr62308.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr62308.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 typedef int __attribute__((vector_size(16))) v4si;
 struct S2823 {v4si a;int b[0];};
diff --git a/gcc/testsuite/gcc.target/aarch64/pr87305.c 
b/gcc/testsuite/gcc.target/aarch64/pr87305.c
index 7a3e41820d6..7933fb348aa 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr87305.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr87305.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-fpermissive -Ofast -mbig-endian -w" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 int cc;
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
index 13ebb9fd6fe..2741013480d 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 /* To avoid needing big-endian header files.  */
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
index 13d27e2781d..2e96ef5ae40 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 /* To avoid needing big-endian header files.  */
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
index 20e692118f9..0e4d9c3c3d4 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 /* To avoid needing big-endian header files.  */
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
index e3f352bb8c2..5e7b3cd4ab9 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
@@ -1,4 +1,5 @@
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 #pragma GCC aarch64 "arm_sve.h"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
index e5998ae488d..4ad5c042d28 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
index 707b7be4248..4148a535f63 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
index 19e422fab17..3e3aab9b99d 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
index 1c072c01d39..12d81fd84be 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
index 3bd18a92393..bd896c85f66 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
index 3b486f9b767..bd2c8071880 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
index 3b3d72c2310..995752dc223 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
index 56346583824..b863c3842f2 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
index 12fc2db996a..9ddde652a0f 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
index b18a825dc24..96caae35138 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
index b69efcad70d..a3202854c86 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
index b06d3a87ca2..0e0fc00890e 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
index a744278f287..87deb7888d1 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
index 5f741ae9174..e894f1fb595 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
index 690426807cd..33bc959d7c6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
index 313caa9e3c8..70bcadb03a5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
index 69a49d4aee3..90ec398a5d6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
index 80af390b944..a89d77d3be6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
index c747d60395a..17f5fb67f51 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
index f3bdf940587..e9251788aeb 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
index 013691c5610..96ed12a60bf 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
index d4d593ca0bc..8c4d3d13644 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
index 04f16d5a062..65e2c60eb78 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
index 73b03069284..c105ce125b6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
index 9edbfeb49ca..1d06b0ec1f1 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
index d2bef6a46d8..ba435b55347 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection 
-fno-cprop-registers -fdisable-rtl-combine -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
index d94e26e11e2..1743987d5a5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fno-shrink-wrap -fno-stack-clash-protection 
-g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
index a895272e826..ffd4394b1da 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fshrink-wrap -fno-stack-clash-protection -g" 
} */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 #pragma GCC aarch64 "arm_sve.h"
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
index f9532d3ca7f..0c23984d318 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fno-shrink-wrap -fno-stack-clash-protection 
-g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
 
 void standard_callee (void);
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
index bbc4f84ec9f..61af3af8e64 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fshrink-wrap -fno-stack-clash-protection -g" 
} */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
 
 void standard_callee (void);
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
index 38a414cb4bd..9bb1eb7018c 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
 
 void standard_callee (__SVInt8_t *);
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
index cce9cd82df3..d3a57208875 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 void standard_callee (void);
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c 
b/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
index b7504add9a9..974816b4636 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-additional-options "-O0 -msve-vector-bits=256 -mbig-endian 
--save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 typedef struct _b {
   __attribute__((__vector_size__(32))) int a[2];
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
index 389739cc85d..e31303760e4 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 #include "revb_1.c"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
index e821b64027e..ea1a0c03c29 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 #include "revh_1.c"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
index 7634d01b2c4..101ddeb3802 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=2048 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" } } */
 
 typedef unsigned char v128qi __attribute__((vector_size(128)));
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
index 17243c05c5e..0bf25416aad 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 #include "revw_1.c"
 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c 
b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
index 16e48bef044..e2b861b7bfe 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 typedef char vnx16qi __attribute__((vector_size(32)));
 typedef struct { vnx16qi a[2]; } vnx32qi;
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c 
b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
index 6041f2a2a49..e5d3cc6d214 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 typedef char vnx16qi __attribute__((vector_size(32)));
 typedef struct { vnx16qi a[3]; } vnx48qi;
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c 
b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
index d6092e791d8..89475ad82ea 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 
 typedef char vnx16qi __attribute__((vector_size(32)));
 typedef struct { vnx16qi a[4]; } vnx64qi;
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c 
b/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
index 0681d959101..48c49c31b98 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -mbig-endian" } */
+/* { dg-require-effective-target aarch64_big_endian_nocache } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 typedef char v16qi __attribute__ ((vector_size (16)));
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index edd1290bd9e..c8dc234d785 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5050,14 +5050,19 @@ proc check_effective_target_vect_simd_clones { } {
 }
 
 # Return 1 if this is a AArch64 target supporting big endian
-proc check_effective_target_aarch64_big_endian { } {
-    return [check_no_compiler_messages aarch64_big_endian assembly {
+proc check_effective_target_aarch64_big_endian_nocache { } {
+    return [check_no_compiler_messages_nocache aarch64_big_endian assembly {
        #if !defined(__aarch64__) || !defined(__AARCH64EB__)
        #error !__aarch64__ || !__AARCH64EB__
        #endif
     }]
 }
 
+proc check_effective_target_aarch64_big_endian { } {
+    return [check_cached_effective_target aarch64_big_endian \
+               check_effective_target_aarch64_big_endian_nocache]
+}
+
 # Return 1 if this is a AArch64 target supporting little endian
 proc check_effective_target_aarch64_little_endian { } {
     if { ![istarget aarch64*-*-*] } {
-- 
2.50.1 (Apple Git-155)

Reply via email to