From: Torbjörn SVENSSON <[email protected]>

In order for the tests to pass, -mcpu=unset is needed to avoid conflict
between -march and any previous -mcpu argument.

gcc/testsuite/ChangeLog:

        * gcc.target/arm/cmse/cmse-18.c: Use effective-target
        arm_arch_v8m_main.
        * gcc.target/arm/cmse/cmse-19.c: Use effective-target
        arm_arch_v8_1m_mve.
        * lib/target-supports.exp: Define effective-target
        arm_arch_v8m_main.

Signed-off-by: Torbjörn SVENSSON <[email protected]>
---
Regtested for arm-none-eabi on top of r17-2833-g32657f29f91871.

Ok for trunk and releases/gcc-16?

--

In order for the tests to pass, -mcpu=unset is needed to avoid conflict
between -march and any previous -mcpu argument.

Only run tests when able to, potentially, switch target to
armv8-m.main+fp and armv8.1-m.main+mve.
I did not use dg-add-options to do the target switching since it might
allow more options for the arch than +fp/+mve, for example +dsp, and
this will cause the

scan-rtl-dump final "call \\(mem:SI \\(reg/f:SI [0-7] r[0-7]"

test to fail.

gcc/testsuite/ChangeLog:

        * gcc.target/arm/cmse/cmse-18.c: Require effective target
        arm_arch_v8m_main_ok and add -mcpu=unset.
        * gcc.target/arm/cmse/cmse-19.c: Require effective target
        arm_v8_1m_mve_ok and add -mcpu=unset.

Signed-off-by: Torbjörn SVENSSON <[email protected]>

--



This is a forge pull request published on the gcc-patches mailing list mailing 
list
as requested by Torbjörn Svensson via Sourceware Forge 
<[email protected]>.
Forge discussion: https://forge.sourceware.org/gcc/gcc/pulls/212

Get it locally using:
```
git fetch forge-upstream "+refs/versioned_pull/212/*:refs/versioned_pull/212/*"
git switch -c "pr-212-v2" "refs/versioned_pull/212/2/head"
```
Or, download the patch at: https://forge.sourceware.org/gcc/gcc/pulls/212.diff
Created on: 2026-08-07 16:20:38+00:00
Latest update: 2026-08-21 14:40:27+00:00
Changes: 3 changed files, 9 additions, 4 deletions
Head revision: azoff/gcc ref refs/pull/212/head commit 
8ab5e384732e742e165ac43aaa007c94c6f82fd9 
Base revision: gcc/gcc ref trunk commit 
32657f29f918712ad7110bd54d8ebb3bf6b0a2a8 r17-2833-g32657f29f91871
Merge base: 32657f29f918712ad7110bd54d8ebb3bf6b0a2a8
Requested Reviewers: rearnsha

Changed files:
- M: gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
- M: gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
- M: gcc/testsuite/lib/target-supports.exp

 gcc/testsuite/gcc.target/arm/cmse/cmse-18.c | 4 +++-
 gcc/testsuite/gcc.target/arm/cmse/cmse-19.c | 8 +++++---
 gcc/testsuite/lib/target-supports.exp       | 1 +
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c 
b/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
index eb8a358481dfb..bf9dcec207f03 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target arm_arch_v8m_main_ok } */
 /* Make sure FPCXT is not enabled.  */
-/* { dg-options "-mcmse -fdump-rtl-final -march=armv8-m.main+fp" } */
+/* { dg-options "-mcmse -fdump-rtl-final" } */
+/* { dg-add-options arm_arch_v8m_main } */
 
 typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
 
diff --git a/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c 
b/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
index ae075c371f6ed..51919617f9573 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
@@ -1,7 +1,9 @@
 /* { dg-do compile } */
-/* This is a duplicate of cmse-18.c, targetting arm_v8_1m_mve, to make sure
-   FPCXT is enabled.  */
-/* { dg-options "-mcmse -fdump-rtl-final -march=armv8.1-m.main+mve" } */
+/* { dg-require-effective-target arm_arch_v8_1m_main_mve_ok } */
+/* This is a duplicate of cmse-18.c, targetting arm_v8_1m_main_mve, to make
+   sure FPCXT is enabled.  */
+/* { dg-options "-mcmse -fdump-rtl-final" } */
+/* { dg-add-options arm_arch_v8_1m_main_mve } */
 
 typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
 
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index 42cbb5ce3df0d..268f9c9d4ee35 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -6371,6 +6371,7 @@ foreach { armfunc armflag armdefs } {
                __ARM_ARCH_8M_BASE__
        v8m_main "-march=armv8-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
        v8_1m_main "-march=armv8.1-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
+       v8_1m_main_mve "-march=armv8.1-m.main+mve -mthumb" __ARM_ARCH_8M_MAIN__
        v8_1m_main_pacbti "-march=armv8.1-m.main+pacbti+fp -mthumb"
                "__ARM_ARCH_8M_MAIN__ && __ARM_FEATURE_BTI && 
__ARM_FEATURE_PAUTH"
        v8_1m_main_fp_hard "-march=armv8.1-m.main+pacbti+fp -mthumb -mfpu=auto 
-mfloat-abi=hard" "__ARM_ARCH_8M_MAIN__ && (__ARM_FP & 2)"

Range-diff against v1:
1:  25ebe2bd6a529 ! 1:  8ab5e384732e7 testsuite: arm: add require effective 
target for cmse tests
    @@ Commit message
         In order for the tests to pass, -mcpu=unset is needed to avoid conflict
         between -march and any previous -mcpu argument.
     
    -    Only run tests when able to, potentially, switch target to
    -    armv8-m.main+fp and armv8.1-m.main+mve.
    -    I did not use dg-add-options to do the target switching since it might
    -    allow more options for the arch than +fp/+mve, for example +dsp, and
    -    this will cause the
    -
    -    scan-rtl-dump final "call \\(mem:SI \\(reg/f:SI [0-7] r[0-7]"
    -
    -    test to fail.
    -
         gcc/testsuite/ChangeLog:
     
    -            * gcc.target/arm/cmse/cmse-18.c: Require effective target
    -            arm_arch_v8m_main_ok and add -mcpu=unset.
    -            * gcc.target/arm/cmse/cmse-19.c: Require effective target
    -            arm_v8_1m_mve_ok and add -mcpu=unset.
    +            * gcc.target/arm/cmse/cmse-18.c: Use effective-target
    +            arm_arch_v8m_main.
    +            * gcc.target/arm/cmse/cmse-19.c: Use effective-target
    +            arm_arch_v8_1m_mve.
    +            * lib/target-supports.exp: Define effective-target
    +            arm_arch_v8m_main.
     
         Signed-off-by: Torbjörn SVENSSON <[email protected]>
     
    @@ gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
     +/* { dg-require-effective-target arm_arch_v8m_main_ok } */
      /* Make sure FPCXT is not enabled.  */
     -/* { dg-options "-mcmse -fdump-rtl-final -march=armv8-m.main+fp" } */
    -+/* { dg-options "-mcmse -fdump-rtl-final -mcpu=unset 
-march=armv8-m.main+fp" } */
    ++/* { dg-options "-mcmse -fdump-rtl-final" } */
    ++/* { dg-add-options arm_arch_v8m_main } */
      
      typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
      
    @@ gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
      ## gcc/testsuite/gcc.target/arm/cmse/cmse-19.c ##
     @@
      /* { dg-do compile } */
    -+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
    - /* This is a duplicate of cmse-18.c, targetting arm_v8_1m_mve, to make 
sure
    -    FPCXT is enabled.  */
    +-/* This is a duplicate of cmse-18.c, targetting arm_v8_1m_mve, to make 
sure
    +-   FPCXT is enabled.  */
     -/* { dg-options "-mcmse -fdump-rtl-final -march=armv8.1-m.main+mve" } */
    -+/* { dg-options "-mcmse -fdump-rtl-final -mcpu=unset 
-march=armv8.1-m.main+mve" } */
    ++/* { dg-require-effective-target arm_arch_v8_1m_main_mve_ok } */
    ++/* This is a duplicate of cmse-18.c, targetting arm_v8_1m_main_mve, to 
make
    ++   sure FPCXT is enabled.  */
    ++/* { dg-options "-mcmse -fdump-rtl-final" } */
    ++/* { dg-add-options arm_arch_v8_1m_main_mve } */
      
      typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
      
    +
    + ## gcc/testsuite/lib/target-supports.exp ##
    +@@ gcc/testsuite/lib/target-supports.exp: foreach { armfunc armflag 
armdefs } {
    +           __ARM_ARCH_8M_BASE__
    +   v8m_main "-march=armv8-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
    +   v8_1m_main "-march=armv8.1-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
    ++  v8_1m_main_mve "-march=armv8.1-m.main+mve -mthumb" __ARM_ARCH_8M_MAIN__
    +   v8_1m_main_pacbti "-march=armv8.1-m.main+pacbti+fp -mthumb"
    +           "__ARM_ARCH_8M_MAIN__ && __ARM_FEATURE_BTI && 
__ARM_FEATURE_PAUTH"
    +   v8_1m_main_fp_hard "-march=armv8.1-m.main+pacbti+fp -mthumb -mfpu=auto 
-mfloat-abi=hard" "__ARM_ARCH_8M_MAIN__ && (__ARM_FP & 2)"
-- 
2.54.0

Reply via email to