Index: gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.x
===================================================================
--- gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.x	(revision 190481)
+++ gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.x	(working copy)
@@ -1,5 +0,0 @@
-if { [istarget aarch64_be-*-*] } then {
-   return 1
-}
-
-return 0
Index: gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c
===================================================================
--- gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c	(revision 190481)
+++ gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.c	(working copy)
@@ -5,6 +5,7 @@
 
 /* { dg-do run { target aarch64-*-* } } */
 /* { dg-additional-sources "abitest.S" } */
+/* { dg-require-effective-target aarch64_big_endian } */
 
 #ifndef IN_FRAMEWORK
 #define TESTFILE "func-ret-3.c"
Index: gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.x
===================================================================
--- gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.x	(revision 190481)
+++ gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-3.x	(working copy)
@@ -1,5 +0,0 @@
-if { [istarget aarch64_be-*-*] } then {
-   return 1
-}
-
-return 0
Index: gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c
===================================================================
--- gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c	(revision 190481)
+++ gcc/testsuite/gcc.target/aarch64/aapcs64/func-ret-4.c	(working copy)
@@ -6,6 +6,7 @@
 
 /* { dg-do run { target aarch64*-*-* } } */
 /* { dg-additional-sources "abitest.S" } */
+/* { dg-require-effective-target aarch64_big_endian } */
 
 #ifndef IN_FRAMEWORK
 #define TESTFILE "func-ret-4.c"
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp	(revision 190481)
+++ gcc/testsuite/lib/target-supports.exp	(working copy)
@@ -2004,6 +2004,15 @@
     return $et_vect_floatuint_cvt_saved
 }
 
+# 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 {
+	#if !defined(__aarch64__) || !defined(__AARCH64EB__)
+	#error FOO
+	#endif
+    }]
+}
+
 # Return 1 is this is an arm target using 32-bit instructions
 proc check_effective_target_arm32 { } {
     return [check_no_compiler_messages arm32 assembly {
