aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2022-04-12 13:35:27 +0100
committerRichard Earnshaw <rearnsha@arm.com>2022-04-12 13:38:44 +0100
commit62082d278d1fc9773539244194061ab32556db4d (patch)
treed48feb501e518937555a57466cedb7f945832dbd
parent31cccadcf2d3cc8acb7a5f36ed57ca847f7ea0ea (diff)
downloadgcc-62082d278d1fc9773539244194061ab32556db4d.zip
gcc-62082d278d1fc9773539244194061ab32556db4d.tar.gz
gcc-62082d278d1fc9773539244194061ab32556db4d.tar.bz2
arm: fix testsuite failure of reg_equal_test.c [PR101755]
The test failure in PR101755 is due to the gimple optimizers getting smarter. But really we are just testing that RTL expansion is doing the right thing and annotating a constant accordingly. So rework the test to use GIMPLE input and simplify the code entirely. Also, this test only ever worked on architecture versions with the MOVW/MOVT instructions, so check for this before running. gcc/testsuite/ChangeLog: PR target/101755 * gcc.target/arm/reg_equal_test.c: Convert to gimple test. Restrict to architectures with MOVW/MOVT.
-rw-r--r--gcc/testsuite/gcc.target/arm/reg_equal_test.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/gcc/testsuite/gcc.target/arm/reg_equal_test.c b/gcc/testsuite/gcc.target/arm/reg_equal_test.c
index 58fa9dd..d87c75c 100644
--- a/gcc/testsuite/gcc.target/arm/reg_equal_test.c
+++ b/gcc/testsuite/gcc.target/arm/reg_equal_test.c
@@ -1,24 +1,15 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-rtl-expand" } */
+/* { dg-options "-fgimple -O1 -fdump-rtl-expand" } */
+/* { dg-skip-if "" { ! { arm_thumb2_ok || arm_thumb1_movt_ok } } } */
-extern void abort (void);
-unsigned int a = 1;
-
-int
-main (void)
+void __GIMPLE (ssa,startwith ("expand"))
+x ()
{
- unsigned int b, c, d;
-
- if (sizeof (int) != 4 || (int) 0xc7d24b5e > 0)
- return 0;
-
- c = 0xc7d24b5e;
- d = a | -2;
- b = (d == 0) ? c : (c % d);
- if (b != c)
- abort ();
+ unsigned int d;
- return 0;
+ __BB(2,guessed_local(1073741824)):
+ d_1 = 3352447838u;
+ return;
}
/* { dg-final { scan-rtl-dump "expr_list:REG_EQUAL \\(const_int -942519458" "expand" } } */