aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>2024-11-10 12:30:02 +0100
committerTorbjörn SVENSSON <torbjorn.svensson@foss.st.com>2024-12-12 12:25:19 +0100
commitbdf75257aad299cbad5a62dd10a45139ac3aa369 (patch)
treeb0b55de77153c22f6a3ebb8f90dc6eaa43c2d45c /gcc
parenta2006457c676880315eee7728f2e0cf90bfbdd15 (diff)
downloadgcc-bdf75257aad299cbad5a62dd10a45139ac3aa369.zip
gcc-bdf75257aad299cbad5a62dd10a45139ac3aa369.tar.gz
gcc-bdf75257aad299cbad5a62dd10a45139ac3aa369.tar.bz2
testsuite: arm: Use effective-target for its.c test [PR94531]
The test case gcc.target/arm/its.c was created together with restriction of IT blocks for Cortex-M7. As the test case fails on all tunes that does not match Cortex-M7, explicitly test it for Cortex-M7. To have some additional faith that GCC does the correct thing, I also added another variant of the test for Cortex-M3 that should allow longer IT blocks. gcc/testsuite/ChangeLog: PR testsuite/94531 * gcc.target/arm/its.c: Removed. * gcc.target/arm/its-1.c: Copy of gcc.target/arm/its.c. Use effective-target arm_cpu_cortex_m7. * gcc.target/arm/its-2.c: Copy of gcc.target/arm/its.c. Use effective-target arm_cpu_cortex_m3. Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/arm/its-1.c (renamed from gcc/testsuite/gcc.target/arm/its.c)5
-rw-r--r--gcc/testsuite/gcc.target/arm/its-2.c24
2 files changed, 27 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.target/arm/its.c b/gcc/testsuite/gcc.target/arm/its-1.c
index f81a0df..2730a2c 100644
--- a/gcc/testsuite/gcc.target/arm/its.c
+++ b/gcc/testsuite/gcc.target/arm/its-1.c
@@ -1,7 +1,8 @@
/* { dg-do compile } */
-/* { dg-require-effective-target arm_cortex_m } */
-/* { dg-require-effective-target arm_thumb2 } */
+/* { dg-require-effective-target arm_cpu_cortex_m7_ok } */
/* { dg-options "-O2" } */
+/* { dg-add-options arm_cpu_cortex_m7 } */
+
int test (int a, int b)
{
int r;
diff --git a/gcc/testsuite/gcc.target/arm/its-2.c b/gcc/testsuite/gcc.target/arm/its-2.c
new file mode 100644
index 0000000..2f4f629
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/its-2.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_cpu_cortex_m3_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_cpu_cortex_m3 } */
+
+int test (int a, int b)
+{
+ int r;
+ if (a > 10)
+ {
+ r = a - b;
+ r += 10;
+ }
+ else
+ {
+ r = b - a;
+ r -= 7;
+ }
+ if (r > 0)
+ r -= 3;
+ return r;
+}
+/* Ensure there is an IT block with at least 2 instructions. */
+/* { dg-final { scan-assembler "\\sit\[te\]{2}" } } */