On 10/14/26 11:39, Christophe Lyon wrote:


On 10/9/26 15:58, Richard Earnshaw (foss) wrote:
On 07/10/2026 15:11, Christophe Lyon wrote:
With modern DejaGnu, dg-options / dg-add-options override multilibs
settings (from RUNTESTFLAGS), so we can remove these useless
dg-skip-if directives.

In some tests, make use of arm_arch* and related effecive-targets.

* In gcc.target/arm/asm-flag-4.c: use an empty dg-options directive,
   to remove -ansi -pedantic-errors options which otherwise make
   compilation fail (the previous options are now provided via
   dg-add-options arm_arch_v4t).

* In gcc/testsuite/gcc.target/arm/lob3.c and lob4.c: keep
   -mfloat-abi=soft as part of dg-options because -mfloat-abi is not
   provided by arm_soft_ok.

* In gcc.target/arm/mve/intrinsics/mve_libcall1.c and mve_libcall2.c:
   use arm_v8_1m_mve_nofp_ok instead of arm_v8_1m_mve_ok, because the
   tests rely on the absence of FP support (there were previously
   testing arm_v8_1m_mve_ok, but using -march=armv8.1-m.main+mve).

Tested on:
-marm/-march=armv7-a/-mfloat-abi=soft
-marm/-march=armv7-a+fp/-mfloat-abi=softfp
-mthumb/-march=armv6s-m/-mtune=cortex-m0
-mthumb/-march=armv7-m/-mtune=cortex-m3/-mfloat-abi=softfp
-mthumb/-march=armv7e-m+fp/-mtune=cortex-m4/-mfloat-abi=hard
-mthumb/-march=armv7e-m+fp.dp/-mtune=cortex-m7/-mfloat-abi=hard
-mthumb/-march=armv8-m.base/-mtune=cortex-m23/-mfloat-abi=soft
-mthumb/-march=armv8-m.main+dsp+fp/-mtune=cortex-m33/-mfloat-abi=hard
-mthumb/-march=armv8.1-m.main+mve.fp+fp.dp/-mtune=cortex-m55/-mfloat- abi=hard
-mthumb/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp
-mthumb/-march=armv8-a+simd+crypto/-mfloat-abi=hard

The updated tests now PASS on more of the variants above.

gcc/testsuite/ChangeLog:

    * gcc.target/arm/pr51835.c: Remove useless dg-skip-if.
    * gcc.target/arm/f16_f64_conv_no_dp.c: Likewise.
    * gcc.c-torture/compile/pr82096.c: Likewise.
    * gcc.target/arm/fma.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_vector_float.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_vector_float1.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_vector_int1.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_vector_int2.c: Likewise.
    * gcc.target/arm/pr60650.c: Likewise.
    * gcc.target/arm/pr65710.c: Likewise.
    * gcc.target/arm/pr7676.c: Likewise.
    * gcc.target/arm/pr88850-2.c: Likewise.
    * gcc.target/arm/pr94743-1-hard.c: Likewise.
    * gcc.target/arm/pr94743-1-soft.c: Likewise.
    * gcc.target/arm/pr94743-1-softfp.c: Likewise.
    * gcc.target/arm/pr94743-3.c: Likewise.
    * gcc.target/arm/size-optimization-ieee-1.c: Likewise.
    * gcc.target/arm/size-optimization-ieee-2.c: Likewise.
    * gcc.target/arm/size-optimization-ieee-3.c: Likewise.
    * gcc.target/arm/asm-flag-4.c: Remove useless dg-skip-if. Update
    dg-options.
    * gcc.target/arm/lob3.c: Likewise.
    * gcc.target/arm/lob4.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_libcall1.c: Likewise.
    * gcc.target/arm/mve/intrinsics/mve_libcall2.c: Likewise.
    * gcc.target/arm/pr51915.c: Likewise.
    * gcc.target/arm/pr52006.c: Likewise.
    * gcc.target/arm/pr53187.c: Likewise.
    * gcc.target/arm/pr70278.c: Likewise.
    * gcc.target/arm/pr82989.c: Likewise.
    * gcc.target/arm/pr88850.c: Likewise.
---
  gcc/testsuite/gcc.c-torture/compile/pr82096.c             | 1 -
  gcc/testsuite/gcc.target/arm/asm-flag-4.c                 | 4 ++--
  gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c         | 3 ---
  gcc/testsuite/gcc.target/arm/fma.c                        | 3 ---
  gcc/testsuite/gcc.target/arm/lob3.c                       | 7 ++++---
  gcc/testsuite/gcc.target/arm/lob4.c                       | 7 ++++---
  .../gcc.target/arm/mve/intrinsics/mve_libcall1.c          | 6 +++---
  .../gcc.target/arm/mve/intrinsics/mve_libcall2.c          | 6 +++---
  .../gcc.target/arm/mve/intrinsics/mve_vector_float.c      | 1 -
  .../gcc.target/arm/mve/intrinsics/mve_vector_float1.c     | 1 -
  .../gcc.target/arm/mve/intrinsics/mve_vector_int1.c       | 1 -
  .../gcc.target/arm/mve/intrinsics/mve_vector_int2.c       | 1 -
  gcc/testsuite/gcc.target/arm/pr51835.c                    | 3 ---
  gcc/testsuite/gcc.target/arm/pr51915.c                    | 6 +++---
  gcc/testsuite/gcc.target/arm/pr52006.c                    | 6 +++---
  gcc/testsuite/gcc.target/arm/pr53187.c                    | 6 +++---
  gcc/testsuite/gcc.target/arm/pr60650.c                    | 1 -
  gcc/testsuite/gcc.target/arm/pr65710.c                    | 1 -
  gcc/testsuite/gcc.target/arm/pr70278.c                    | 8 ++------
  gcc/testsuite/gcc.target/arm/pr7676.c                     | 1 -
  gcc/testsuite/gcc.target/arm/pr82989.c                    | 5 +----
  gcc/testsuite/gcc.target/arm/pr88850-2.c                  | 1 -
  gcc/testsuite/gcc.target/arm/pr88850.c                    | 6 +++---
  gcc/testsuite/gcc.target/arm/pr94743-1-hard.c             | 1 -
  gcc/testsuite/gcc.target/arm/pr94743-1-soft.c             | 1 -
  gcc/testsuite/gcc.target/arm/pr94743-1-softfp.c           | 1 -
  gcc/testsuite/gcc.target/arm/pr94743-3.c                  | 1 -
  gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c   | 1 -
  gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c   | 1 -
  gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c   | 1 -
  30 files changed, 31 insertions(+), 61 deletions(-)

diff --git a/gcc/testsuite/gcc.c-torture/compile/pr82096.c b/gcc/ testsuite/gcc.c-torture/compile/pr82096.c
index 4e695cd7e2e..1d2995b681d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr82096.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr82096.c
@@ -1,5 +1,4 @@
  /* { dg-require-effective-target arm_arch_v5t_thumb_ok { target arm*-*-* } } */ -/* { dg-skip-if "Do not combine float-abi values" { arm*-*-* } { "- mfloat-abi=*" } { "-mfloat-abi=soft" } } */   /* { dg-additional-options "-march=armv5t -mthumb -mfloat- abi=soft" { target arm*-*-* } } */
  static long long AL[24];
diff --git a/gcc/testsuite/gcc.target/arm/asm-flag-4.c b/gcc/ testsuite/gcc.target/arm/asm-flag-4.c
index 6841b6ea1e2..f60e94d9d2c 100644
--- a/gcc/testsuite/gcc.target/arm/asm-flag-4.c
+++ b/gcc/testsuite/gcc.target/arm/asm-flag-4.c
@@ -1,8 +1,8 @@
  /* Test that we do not ice in thumb1 mode */
  /* { dg-do compile } */
  /* { dg-require-effective-target arm_arch_v4t_thumb_ok } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } { "-mfloat-abi=softfp" } } */
-/* { dg-options "-march=armv4t -mfloat-abi=softfp" } */
+/* { dg-options "" } */ /* Remove -ansi -pedantic-errors flags.  */
+/* { dg-add-options arm_arch_v4t } */
  void __attribute__((target("arm"))) f(char *out)
  {
diff --git a/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c b/gcc/ testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
index 2620e570004..03052227b03 100644
--- a/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
+++ b/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
@@ -1,8 +1,5 @@
  /* { dg-do compile } */
  /* { dg-require-effective-target arm_fp16_ok } */
-/* { dg-skip-if "do not override fpu" { *-*-* } { "-mfpu=*" } { "- mfpu=fpv5-sp-d16" } } */ -/* { dg-skip-if "do not disable fpu" { *-*-* } { "-mfloat- abi=soft" } { * } } */ -/* { dg-skip-if "do not override fp16-format" { *-*-* } { "-mfp16- format=*" } { "-mfp16-format=ieee" } } */   /* { dg-options "-O1 -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mfp16- format=ieee" } */
  __fp16 foo (double a)
diff --git a/gcc/testsuite/gcc.target/arm/fma.c b/gcc/testsuite/ gcc.target/arm/fma.c
index 704559a5791..f76538747cf 100644
--- a/gcc/testsuite/gcc.target/arm/fma.c
+++ b/gcc/testsuite/gcc.target/arm/fma.c
@@ -1,8 +1,5 @@
  /* { dg-do compile } */
  /* { dg-skip-if "avoid conflicts with multilib options" { ! arm_thumb2_ok } { "-mthumb" } { "" } } */ -/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-a15" } } */ -/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfpu=*" } { "-mfpu=vfpv4" } } */ -/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */   /* { dg-options "-O2 -mcpu=cortex-a15 -mfpu=vfpv4 -mfloat- abi=hard" } */
  #include "fma.h"
diff --git a/gcc/testsuite/gcc.target/arm/lob3.c b/gcc/testsuite/ gcc.target/arm/lob3.c
index f5290063f28..517900f35e1 100644
--- a/gcc/testsuite/gcc.target/arm/lob3.c
+++ b/gcc/testsuite/gcc.target/arm/lob3.c
@@ -1,9 +1,10 @@
  /* Check that GCC does not generate Armv8.1-M low over head loop instructions      if causes VFP emulation library calls to happen inside the loop.  */
  /* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "- marm" "-mcpu=*" "-mfloat-abi=hard" } } */ -/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps - mfloat-abi=soft" } */
-/* { dg-require-effective-target arm_softfloat } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
+/* { dg-require-effective-target arm_soft_ok } */
+/* { dg-options "-O3 --save-temps -mfloat-abi=soft" } */
+/* { dg-add-options arm_arch_v8_1m_main } */
  #include <stdlib.h>
  #include "lob.h"
diff --git a/gcc/testsuite/gcc.target/arm/lob4.c b/gcc/testsuite/ gcc.target/arm/lob4.c
index 86c774e1b57..a820692898d 100644
--- a/gcc/testsuite/gcc.target/arm/lob4.c
+++ b/gcc/testsuite/gcc.target/arm/lob4.c
@@ -1,9 +1,10 @@
  /* Check that GCC does not generate Armv8.1-M low over head loop instructions
     if LR is modified within the loop.  */
  /* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "- marm" "-mcpu=*" "-mfloat-abi=hard" } } */ -/* { dg-options "-march=armv8.1-m.main -mthumb -O3 --save-temps - mfloat-abi=soft" } */
-/* { dg-require-effective-target arm_softfloat } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_ok } */
+/* { dg-require-effective-target arm_soft_ok } */
+/* { dg-options "-O3 --save-temps -mfloat-abi=soft" } */
+/* { dg-add-options arm_arch_v8_1m_main } */
  #include <stdlib.h>
  #include "lob.h"
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_libcall1.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_libcall1.c
index 222007f7ee2..a505705e11a 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c
@@ -1,6 +1,6 @@
-/* { dg-require-effective-target arm_v8_1m_mve_ok } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve -mfloat- abi=hard -mthumb -mfpu=auto -mno-long-calls --save-temps" } */
+/* { dg-require-effective-target arm_v8_1m_mve_nofp_ok } */
+/* { dg-add-options arm_v8_1m_mve_nofp } */
+/* { dg-additional-options "-mno-long-calls --save-temps" } */
  float
  foo (float a, float b, float c)
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_libcall2.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_libcall2.c
index 42047a33fdf..becfe431dc4 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall2.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall2.c
@@ -1,6 +1,6 @@
-/* { dg-require-effective-target arm_v8_1m_mve_ok } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve -mfloat- abi=hard -mthumb -mfpu=auto -mno-long-calls --save-temps" } */
+/* { dg-require-effective-target arm_v8_1m_mve_nofp_ok } */
+/* { dg-add-options arm_v8_1m_mve_nofp } */
+/* { dg-additional-options "-mno-long-calls --save-temps" } */
  double
  foo (double a, double b, double c)
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_float.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_float.c
index 6519b81a0d5..edf741f7f84 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c
@@ -1,6 +1,5 @@
  /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
  /* { dg-add-options arm_v8_1m_mve_fp } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */
  #include "arm_mve.h"
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_float1.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_float1.c
index 855e3b8845f..5ff0f090985 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c
@@ -1,6 +1,5 @@
  /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
  /* { dg-add-options arm_v8_1m_mve_fp } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */
  #include "arm_mve.h"
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_int1.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_int1.c
index b13d0a81286..0c9da31dcd1 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int1.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int1.c
@@ -1,6 +1,5 @@
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */
  #include "arm_mve.h"
diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_int2.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/ mve_vector_int2.c
index 04403ee4938..92d708297c9 100644
--- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int2.c
+++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int2.c
@@ -1,6 +1,5 @@
  /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
-/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat- abi=soft" } {""} } */
  #include "arm_mve.h"
diff --git a/gcc/testsuite/gcc.target/arm/pr51835.c b/gcc/testsuite/ gcc.target/arm/pr51835.c
index 157dcbf7fce..5a58747550f 100644
--- a/gcc/testsuite/gcc.target/arm/pr51835.c
+++ b/gcc/testsuite/gcc.target/arm/pr51835.c
@@ -1,7 +1,4 @@
  /* { dg-do compile } */
-/* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */ -/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } { "-mfloat-abi=hard" } } */ -/* { dg-skip-if "avoid conflicting -mfpu" { *-*-* } { "-mfpu=*" } { "-mfpu=fpv4-sp-d16" "-mfpu=vfpv3xd" "-mfpu=vfpv3xd-fp16" } } */   /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */   /* { dg-options "-O2 -march=armv7-a -mfloat-abi=hard -mfpu=fpv4-sp- d16" }  */ diff --git a/gcc/testsuite/gcc.target/arm/pr51915.c b/gcc/testsuite/ gcc.target/arm/pr51915.c
index d79f9b3e5bb..9eb84e86b1d 100644
--- a/gcc/testsuite/gcc.target/arm/pr51915.c
+++ b/gcc/testsuite/gcc.target/arm/pr51915.c
@@ -1,9 +1,9 @@
  /* PR target/51915 */
  /* { dg-do compile } */
-/* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */ -/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } { "-mfloat-abi=hard" } } */   /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
-/* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2" } */
+/* { dg-require-effective-target arm_arch_v7a_fp_hard_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_arch_v7a_fp_hard } */
  struct S { int s1; void *s2; };
  struct T { struct S t1; unsigned long long t2; };
diff --git a/gcc/testsuite/gcc.target/arm/pr52006.c b/gcc/testsuite/ gcc.target/arm/pr52006.c
index f8188186087..d583f34f57f 100644
--- a/gcc/testsuite/gcc.target/arm/pr52006.c
+++ b/gcc/testsuite/gcc.target/arm/pr52006.c
@@ -1,10 +1,10 @@
  /* PR target/52006 */
  /* { dg-do compile } */
-/* { dg-skip-if "avoid conflicts with multilib flags" { *-*-* } { "- mfloat-abi=*" } { "-mfloat-abi=hard" } } */ -/* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */   /* { dg-skip-if "-mpure-code and -fPIC incompatible" { *-*-* } { "- mpure-code" } } */
-/* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2 -fPIC" } */
+/* { dg-require-effective-target arm_arch_v7a_fp_hard_ok } */
  /* { dg-require-effective-target fpic } */
+/* { dg-options "-O2 -fPIC" } */
+/* { dg-add-options arm_arch_v7a_fp_hard } */
  unsigned long a;
  static int b;
diff --git a/gcc/testsuite/gcc.target/arm/pr53187.c b/gcc/testsuite/ gcc.target/arm/pr53187.c
index 59ca27ecefa..0ddf5c36ce4 100644
--- a/gcc/testsuite/gcc.target/arm/pr53187.c
+++ b/gcc/testsuite/gcc.target/arm/pr53187.c
@@ -1,9 +1,9 @@
  /* PR target/53187 */
  /* { dg-do compile } */
-/* { dg-skip-if "no support for hard-float VFP ABI" { arm_thumb1 } { "-march=*" } { "" } } */ -/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } { "-mfloat-abi=hard" } } */   /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
-/* { dg-options "-march=armv7-a+fp -mfloat-abi=hard -O2" } */
+/* { dg-require-effective-target arm_arch_v7a_fp_hard_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_arch_v7a_fp_hard } */
  void bar (int);
diff --git a/gcc/testsuite/gcc.target/arm/pr60650.c b/gcc/testsuite/ gcc.target/arm/pr60650.c
index 734b41f001a..08e900b89d2 100644
--- a/gcc/testsuite/gcc.target/arm/pr60650.c
+++ b/gcc/testsuite/gcc.target/arm/pr60650.c
@@ -1,5 +1,4 @@
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=softfp" } } */   /* { dg-options "-O2 -fno-omit-frame-pointer -mabi=apcs-gnu - mfloat-abi=softfp" } */ diff --git a/gcc/testsuite/gcc.target/arm/pr65710.c b/gcc/testsuite/ gcc.target/arm/pr65710.c
index 4cbf7817af7..34be852bb1c 100644
--- a/gcc/testsuite/gcc.target/arm/pr65710.c
+++ b/gcc/testsuite/gcc.target/arm/pr65710.c
@@ -1,5 +1,4 @@
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=soft" } } */
  /* { dg-options "-mthumb -O2 -mfloat-abi=soft -w -fpermissive" } */
  /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
diff --git a/gcc/testsuite/gcc.target/arm/pr70278.c b/gcc/testsuite/ gcc.target/arm/pr70278.c
index 97034166f46..9c4f85edf37 100644
--- a/gcc/testsuite/gcc.target/arm/pr70278.c
+++ b/gcc/testsuite/gcc.target/arm/pr70278.c
@@ -1,10 +1,6 @@
  /* { dg-do compile } */
-/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "- march=*" } { "-march=armv4t" } } */ -/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "- marm" } { "" } } */
-/* { dg-require-effective-target arm_arch_v4t_ok } */
-/* { dg-require-effective-target arm_thumb1_ok } */
-/* { dg-options "-mthumb" } */
-/* { dg-add-options arm_arch_v4t } */
+/* { dg-require-effective-target arm_arch_v4t_thumb_ok } */
+/* { dg-add-options arm_arch_v4t_thumb } */
  /*
   * ====================================================
   * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
diff --git a/gcc/testsuite/gcc.target/arm/pr7676.c b/gcc/testsuite/ gcc.target/arm/pr7676.c
index 0e9095c63d3..7bcec183449 100644
--- a/gcc/testsuite/gcc.target/arm/pr7676.c
+++ b/gcc/testsuite/gcc.target/arm/pr7676.c
@@ -1,7 +1,6 @@
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-options "-O1 -march=armv8-a -mfloat-abi=soft -mthumb" }  */
-/* { dg-skip-if "Do not combine float-abi= hard | soft | softfp" {*- *-*} {"-mfloat-abi=hard" -mfloat-abi=softfp } {""} } */
  int a;
  void fn2 (long long);
diff --git a/gcc/testsuite/gcc.target/arm/pr82989.c b/gcc/testsuite/ gcc.target/arm/pr82989.c
index 8519c3fdc82..188c7ae12d3 100644
--- a/gcc/testsuite/gcc.target/arm/pr82989.c
+++ b/gcc/testsuite/gcc.target/arm/pr82989.c
@@ -1,10 +1,7 @@
  /* PR target/82989.  */
  /* { dg-do compile } */
  /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-a8" } } */ -/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfpu=*" } { "-mfpu=neon" } } */ -/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
-/* { dg-options "-O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard" } */
+/* { dg-options "-O2" } */
  /* { dg-add-options arm_neon } */
  typedef unsigned long long uint64_t;
diff --git a/gcc/testsuite/gcc.target/arm/pr88850-2.c b/gcc/ testsuite/gcc.target/arm/pr88850-2.c
index f33361ca11d..7a1aec55dc7 100644
--- a/gcc/testsuite/gcc.target/arm/pr88850-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr88850-2.c
@@ -1,6 +1,5 @@
  /* PR target/88850.  */
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=softfp" } } */
  /* { dg-additional-options "-O2 -march=armv7-a -fdump-rtl-final" } */
  /* { dg-add-options arm_neon_softfp_fp16 } */
  /* { dg-require-effective-target arm_neon_softfp_fp16_ok } */
diff --git a/gcc/testsuite/gcc.target/arm/pr88850.c b/gcc/testsuite/ gcc.target/arm/pr88850.c
index 365c9d73696..912c11a2ac4 100644
--- a/gcc/testsuite/gcc.target/arm/pr88850.c
+++ b/gcc/testsuite/gcc.target/arm/pr88850.c
@@ -1,8 +1,8 @@
  /* PR target/88850 */
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=softfp" } } */ -/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon - fdump-rtl-final" } */
-/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-require-effective-target arm_arch_v7a_neon_ok } */
+/* { dg-options "-O2 -fdump-rtl-final" } */
+/* { dg-add-options arm_arch_v7a_neon } */
  typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
  void bar (int8x8_t, int8x8_t);
diff --git a/gcc/testsuite/gcc.target/arm/pr94743-1-hard.c b/gcc/ testsuite/gcc.target/arm/pr94743-1-hard.c
index b4c961e288f..41c88f93739 100644
--- a/gcc/testsuite/gcc.target/arm/pr94743-1-hard.c
+++ b/gcc/testsuite/gcc.target/arm/pr94743-1-hard.c
@@ -1,6 +1,5 @@
  /* PR target/94743 */
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=hard" } } */
  /* { dg-require-effective-target arm_vfp_ok } */
  /* { dg-add-options arm_vfp } */
  /* Make sure with use -mfloat-abi=hard.  */
diff --git a/gcc/testsuite/gcc.target/arm/pr94743-1-soft.c b/gcc/ testsuite/gcc.target/arm/pr94743-1-soft.c
index e06a16d166c..145d38f6fcf 100644
--- a/gcc/testsuite/gcc.target/arm/pr94743-1-soft.c
+++ b/gcc/testsuite/gcc.target/arm/pr94743-1-soft.c
@@ -2,7 +2,6 @@
  /* { dg-do compile } */
  /* Thumb1 mode not supported for interrupt routines.  */
  /* { dg-require-effective-target arm32 } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=soft" } } */
  /* { dg-options "-mfloat-abi=soft" } */
  /* Check that we do not emit a warning when compiling an IRQ handler without diff --git a/gcc/testsuite/gcc.target/arm/pr94743-1-softfp.c b/gcc/ testsuite/gcc.target/arm/pr94743-1-softfp.c
index 33202496c6c..d76cfabacb1 100644
--- a/gcc/testsuite/gcc.target/arm/pr94743-1-softfp.c
+++ b/gcc/testsuite/gcc.target/arm/pr94743-1-softfp.c
@@ -1,6 +1,5 @@
  /* PR target/94743 */
  /* { dg-do compile } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=softfp" } } */
  /* { dg-require-effective-target arm_vfp_ok } */
  /* { dg-add-options arm_vfp } */
  /* Make sure with use -mfloat-abi=softfp.  */
diff --git a/gcc/testsuite/gcc.target/arm/pr94743-3.c b/gcc/ testsuite/gcc.target/arm/pr94743-3.c
index 6b8ed2b8dfa..9b3918e029a 100644
--- a/gcc/testsuite/gcc.target/arm/pr94743-3.c
+++ b/gcc/testsuite/gcc.target/arm/pr94743-3.c
@@ -2,7 +2,6 @@
  /* { dg-do compile } */
  /* Thumb1 mode not supported for interrupt routines.  */
  /* { dg-require-effective-target arm32 } */
-/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat- abi=*" } {"-mfloat-abi=soft" } } */
  /* { dg-options "-mgeneral-regs-only -mfloat-abi=soft" } */
  /* Check that we do not emit a warning when compiling an IRQ handler
diff --git a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c
index 9af2c6e1020..c906022bb74 100644
--- a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c
+++ b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-1.c
@@ -1,5 +1,4 @@
  /* { dg-do link { target arm_soft_ok_link } } */

Link tests can't be guaranteed to work if the ABI is changed (we might lack the relevant multilibs).  So if this test needs to remove the skip, we need a pre-check that linking with -mfloat-abi=soft won't fail.  This applies to the other 'link' tests below.


In the configs listed in the commit message, before the patch these tests are UNSUPPORTED when I force -mfloat-abi=softtp or -mfloat- abi=hard, and PASS in the cases when -mfloat-abi=soft is used (explicitly or implicitly).

After the patch, the tests become PASS in the configs when I force - mfloat-abi=softfp.

(In the builds I used, I disabled multilibs, so when I test with - mfloat-abi=hard, the toolchain supports hard FP only, and conversely).

The test remains UNSUPPORTED with -mfloat-abi=hard because of the arm_soft_ok_link above (it fails to link against a hard-FP crt0.o).

When using -mfloat-abi=softfp, the linker accepts to mix soft and softfp objects, thus enabling the test.


ping?

Do you think the existing
/* { dg-do link { target arm_soft_ok_link } } */
is not enough / adequate?

Thanks,

Christophe


Thanks,

Christophe



-/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "- mfloat-abi=*" } { "-mfloat-abi=soft" } } */
  /* { dg-options "-mfloat-abi=soft" } */
  int
diff --git a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c
index e78a7ada62e..55cd360ba89 100644
--- a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c
+++ b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-2.c
@@ -1,5 +1,4 @@
  /* { dg-do link { target arm_soft_ok_link } } */
-/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "- mfloat-abi=*" } { "-mfloat-abi=soft" } } */
  /* { dg-options "-mfloat-abi=soft" } */
  int
diff --git a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c
index bb9ccefda5e..482c66cb830 100644
--- a/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c
+++ b/gcc/testsuite/gcc.target/arm/size-optimization-ieee-3.c
@@ -1,5 +1,4 @@
  /* { dg-do link { target arm_soft_ok_link } } */
-/* { dg-skip-if "Feature is -mfloat-abi=soft only" { *-*-* } { "- mfloat-abi=*" } { "-mfloat-abi=soft" } } */
  /* { dg-options "-mfloat-abi=soft" } */
  int

Other than that, the tests that are using dg-do compiler are OK.

R.



Reply via email to