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