From 43dcbb07d29128321f9ffbde2b34635819bb5ac0 Mon Sep 17 00:00:00 2001
From: Joel Brobecker <brobecker@adacore.com>
Date: Thu, 31 Dec 2020 21:38:03 -0300
Subject: [PATCH] disable some aapcs/vfp*.c test if not arm_fp16_alternative_ok

The tests use -mfp16-format=alternative, and so should not be run
if that option isn't supported.


for  gcc/testsuite/ChangeLog

	* lib/target-supports.exp
	(check_effective_target_arm_fp16_alternative_ok_nocache):
	Return zero for *-*-vxworks7r* targets.
	* gcc.target/arm/aapcs/vfp22.c: Require arm_fp16_alternative_ok.
	* gcc.target/arm/aapcs/vfp23.c: Likewise.
	* gcc.target/arm/aapcs/vfp24.c: Likewise.
	* gcc.target/arm/aapcs/vfp25.c: Likewise.
---
 gcc/testsuite/gcc.target/arm/aapcs/vfp22.c | 1 +
 gcc/testsuite/gcc.target/arm/aapcs/vfp23.c | 1 +
 gcc/testsuite/gcc.target/arm/aapcs/vfp24.c | 1 +
 gcc/testsuite/gcc.target/arm/aapcs/vfp25.c | 1 +
 gcc/testsuite/lib/target-supports.exp      | 4 ++++
 5 files changed, 8 insertions(+)

diff --git a/gcc/testsuite/gcc.target/arm/aapcs/vfp22.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp22.c
index 1944bb592a86..fc22792eb793 100644
--- a/gcc/testsuite/gcc.target/arm/aapcs/vfp22.c
+++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp22.c
@@ -3,6 +3,7 @@
 /* { dg-do run { target arm_eabi } }  */
 /* { dg-require-effective-target arm_hard_vfp_ok }  */
 /* { dg-require-effective-target arm_fp16_hw }  */
+/* { dg-require-effective-target arm_fp16_alternative_ok } */
 /* { dg-add-options arm_fp16_alternative }  */
 
 #ifndef IN_FRAMEWORK
diff --git a/gcc/testsuite/gcc.target/arm/aapcs/vfp23.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp23.c
index bcacf9f37c86..469aabd14a00 100644
--- a/gcc/testsuite/gcc.target/arm/aapcs/vfp23.c
+++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp23.c
@@ -3,6 +3,7 @@
 /* { dg-do run { target arm_eabi } }  */
 /* { dg-require-effective-target arm_hard_vfp_ok }  */
 /* { dg-require-effective-target arm_fp16_hw }  */
+/* { dg-require-effective-target arm_fp16_alternative_ok } */
 /* { dg-add-options arm_fp16_alternative }  */
 
 #ifndef IN_FRAMEWORK
diff --git a/gcc/testsuite/gcc.target/arm/aapcs/vfp24.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp24.c
index ef36bb7b52bc..80a46821946f 100644
--- a/gcc/testsuite/gcc.target/arm/aapcs/vfp24.c
+++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp24.c
@@ -3,6 +3,7 @@
 /* { dg-do run { target arm_eabi } }  */
 /* { dg-require-effective-target arm_hard_vfp_ok }  */
 /* { dg-require-effective-target arm_fp16_hw }  */
+/* { dg-require-effective-target arm_fp16_alternative_ok } */
 /* { dg-add-options arm_fp16_alternative }  */
 
 #ifndef IN_FRAMEWORK
diff --git a/gcc/testsuite/gcc.target/arm/aapcs/vfp25.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp25.c
index 3c796ca044ff..649c1750f85b 100644
--- a/gcc/testsuite/gcc.target/arm/aapcs/vfp25.c
+++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp25.c
@@ -3,6 +3,7 @@
 /* { dg-do run { target arm_eabi } }  */
 /* { dg-require-effective-target arm_hard_vfp_ok }  */
 /* { dg-require-effective-target arm_fp16_hw }  */
+/* { dg-require-effective-target arm_fp16_alternative_ok } */
 /* { dg-add-options arm_fp16_alternative }  */
 
 #ifndef IN_FRAMEWORK
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 7cad03556c23..9149767bb898 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4367,6 +4367,10 @@ proc add_options_for_aarch64_sve { flags } {
 # set et_arm_neon_fp16_flags to the best options to add.
 
 proc check_effective_target_arm_fp16_alternative_ok_nocache { } {
+    if { [istarget *-*-vxworks7*] } {
+	# Not supported by the target system.
+	return 0
+    }
     global et_arm_neon_fp16_flags
     set et_arm_neon_fp16_flags ""
     if { [check_effective_target_arm32] } {
-- 
GitLab