testsuite/arm: Improve scan-assembler in pr96770.c

Christophe Lyon christophe.lyon@linaro.org
Fri Mar 26 15:35:21 GMT 2021


Hi,

I'm seeing random scan-assembler-times failures in pr96770.c when LTO is used.

I suspect this is because the \\+4 string matches the LTO sections, sometimes.

I propose this small patch to avoid the issue, by matching arr\\+4 instead. OK?

2021-03-26  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/testsuite/
* gcc.target/arm/pure-code/pr96770.c: Improve scan-assembler-times.

diff --git a/gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
b/gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
index a43d71f..ae1bd10 100644
--- a/gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
+++ b/gcc/testsuite/gcc.target/arm/pure-code/pr96770.c
@@ -5,17 +5,17 @@ int arr[1000];
 int *f4 (void) { return &arr[1]; }

 /* For cortex-m0 (thumb-1/v6m), we generate 4 movs with upper/lower:#arr+4.  */
-/* { dg-final { scan-assembler-times "\\+4" 4 { target { { !
arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */
+/* { dg-final { scan-assembler-times "arr\\+4" 4 { target { { !
arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */

 /* For cortex-m with movt/movw (thumb-1/v8m.base or thumb-2), we
    generate a movt/movw pair with upper/lower:#arr+4.  */
-/* { dg-final { scan-assembler-times "\\+4" 2 { target {
arm_thumb1_movt_ok || arm_thumb2_ok } } } } */
+/* { dg-final { scan-assembler-times "arr\\+4" 2 { target {
arm_thumb1_movt_ok || arm_thumb2_ok } } } } */

 int *f5 (void) { return &arr[80]; }

 /* For cortex-m0 (thumb-1/v6m), we generate 1 ldr from rodata pointer
to arr+320.  */
-/* { dg-final { scan-assembler-times "\\+320" 1 { target { { !
arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */
+/* { dg-final { scan-assembler-times "arr\\+320" 1 { target { { !
arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */

 /* For cortex-m with movt/movw (thumb-1/v8m.base or thumb-2), we
    generate a movt/movw pair with upper/lower:arr+320.  */
-/* { dg-final { scan-assembler-times "\\+320" 2 { target {
arm_thumb1_movt_ok || arm_thumb2_ok } } } } */
+/* { dg-final { scan-assembler-times "arr\\+320" 2 { target {
arm_thumb1_movt_ok || arm_thumb2_ok } } } } */


More information about the Gcc-patches mailing list