Hi Christophe,

On 2025-01-27 13:07, Christophe Lyon wrote:
Hi Torbjorn,

On Fri, 24 Jan 2025 at 18:45, Torbjorn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:

Another ping... :)

Kind regards,
Torbjörn

On 2024-12-18 18:35, Torbjorn SVENSSON wrote:
Gentle ping :)

Kind regards,
Torbjörn

On 2024-11-14 17:16, Torbjorn SVENSSON wrote:


On 2024-11-14 16:32, Christophe Lyon wrote:
On Fri, 8 Nov 2024 at 19:49, Torbjörn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:

Ok for trunk and releases/gcc-14?

--

A long time ago, this test forced -march=armv6.

With -marm, the generated assembler is:
foo:
          sub     r0, r0, #48
          cmp     r0, #9
          movhi   r0, #0
          movls   r0, #1
          bx      lr

With -mthumb, the generated assembler is:
foo:
          subs    r0, r0, #48
          movs    r2, #9
          uxtb    r3, r0
          movs    r0, #0
          cmp     r2, r3
          adcs    r0, r0, r0
          uxtb    r0, r0
          bx      lr

Require effective-target arm_arm_ok to skip the test for thumb-only
targets (Cortex-M).

gcc/testsuite/ChangeLog:

          * gcc.target/arm/unsigned-extend-1.c: Use effective-target
          arm_arm_ok.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
   gcc/testsuite/gcc.target/arm/unsigned-extend-1.c | 1 +
   1 file changed, 1 insertion(+)

diff --git a/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c b/gcc/
testsuite/gcc.target/arm/unsigned-extend-1.c
index 3b4ab048fb0..73f2e1a556d 100644
--- a/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
+++ b/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
@@ -1,4 +1,5 @@
   /* { dg-do compile } */
+/* { dg-require-effective-target arm_arm_ok } */
   /* { dg-options "-O2" } */


So I'm guessing arm_arm_ok fails when you are testing for M-profile
targets?
What happens when you test for A-profile, providing -mthumb as part of
your runtest flags?



Looking at our CI results, without your patch the test passes on:
cortex-m33, m3, m55, m7, v7A in arm mode, v8A in thumb mode,
and it fails only on cortex-m0 and m23.
Does this match your observations?

Without my patch, I see failure on M0, M0+ and M23.
With my patch, it goes to unsupported on all Cortex-M targets that I test.

So your patch will make the test unsupported on m33, m3, m55 and m7
while it currently passes?

Am I missing something?

I think you might have missed my comment down....


Thanks,

Christophe


For Cortex-M0 (thumb/cpu=cortex-m0/float-abi=soft):

Testing arm/unsigned-extend-1.c
check_compile tool: gcc for arm_arm_ok
doing compile
Executing on host: .../bin/arm-none-eabi-gcc  arm_arm_ok21114.c  -
mthumb -mcpu=cortex-m0 -mfloat-abi=soft   -fdiagnostics-plain-output
-marm - Wno-complain-wrong-lang -S     -o arm_arm_ok21114.s
(timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc arm_arm_ok21114.c -
mthumb -mcpu=cortex-m0 -mfloat-abi=soft -fdiagnostics-plain-output -
marm -Wno- complain-wrong-lang -S -o arm_arm_ok21114.s
pid is 21254 -21254
cc1: error: target CPU does not support ARM mode
pid is -1
close result is 21254 exp6 0 1
output is cc1: error: target CPU does not support ARM mode
   status 1
compiler exited with status 1
UNSUPPORTED: gcc.target/arm/unsigned-extend-1.c


For Cortex-A7 (thumb/cpu=cortex-a7/float-abi=soft):

Testing arm/unsigned-extend-1.c
check_compile tool: gcc for arm_arm_ok
doing compile
Executing on host: .../bin/arm-none-eabi-gcc  arm_arm_ok21296.c  -
mthumb -mcpu=cortex-a7 -mfloat-abi=soft   -fdiagnostics-plain-output
-marm - Wno-complain-wrong-lang -S     -o arm_arm_ok21296.s
(timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc arm_arm_ok21296.c -
mthumb -mcpu=cortex-a7 -mfloat-abi=soft -fdiagnostics-plain-output -
marm -Wno- complain-wrong-lang -S -o arm_arm_ok21296.s
pid is 21434 -21434
pid is -1
output is  status 0
doing compile
Executing on host: .../bin/arm-none-eabi-gcc .../gcc/testsuite/
gcc.target/arm/unsigned-extend-1.c  -mthumb -mcpu=cortex-a7 -mfloat-
abi=soft   -fdiagnostics-plain-output  -O2 -ffat-lto-objects -fno-
ident -S     -o unsigned-extend-1.s    (timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc .../gcc/testsuite/
gcc.target/arm/unsigned-extend-1.c -mthumb -mcpu=cortex-a7 -mfloat-
abi=soft -fdiagnostics-plain-output -O2 -ffat-lto-objects -fno-ident -
S -o unsigned-extend-1.s
pid is 21438 -21438
pid is -1
output is  status 0
check_compile tool: gcc for exceptions_enabled
doing compile
Executing on host: .../bin/arm-none-eabi-gcc
exceptions_enabled21296.cc   -mthumb -mcpu=cortex-a7 -mfloat-
abi=soft   -fdiagnostics-plain-output -Wno-complain-wrong-lang -S
-o exceptions_enabled21296.s    (timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc
exceptions_enabled21296.cc -mthumb -mcpu=cortex-a7 -mfloat-abi=soft -
fdiagnostics-plain-output -Wno-complain-wrong-lang -S -o
exceptions_enabled21296.s
pid is 21442 -21442
pid is -1
output is  status 0
PASS: gcc.target/arm/unsigned-extend-1.c (test for excess errors)
PASS: gcc.target/arm/unsigned-extend-1.c scan-assembler-not uxtb

For Cortex-A7 (cpu=cortex-a7/float-abi=soft):



Testing arm/unsigned-extend-1.c
check_compile tool: gcc for arm_arm_ok
doing compile
Executing on host: .../bin/arm-none-eabi-gcc  arm_arm_ok21484.c -
mcpu=cortex-a7 -mfloat-abi=soft   -fdiagnostics-plain-output  -marm -
Wno-complain-wrong-lang -S     -o arm_arm_ok21484.s    (timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc arm_arm_ok21484.c -
mcpu=cortex-a7 -mfloat-abi=soft -fdiagnostics-plain-output -marm -Wno-
complain-wrong-lang -S -o arm_arm_ok21484.s
pid is 21622 -21622
pid is -1
output is  status 0
doing compile
Executing on host: .../bin/arm-none-eabi-gcc .../gcc/testsuite/
gcc.target/arm/unsigned-extend-1.c  -mcpu=cortex-a7 -mfloat-abi=soft
- fdiagnostics-plain-output  -O2 -ffat-lto-objects -fno-ident -S     -
o unsigned-extend-1.s    (timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc .../gcc/testsuite/
gcc.target/arm/unsigned-extend-1.c -mcpu=cortex-a7 -mfloat-abi=soft -
fdiagnostics-plain-output -O2 -ffat-lto-objects -fno-ident -S -o
unsigned-extend-1.s
pid is 21626 -21626
pid is -1
output is  status 0
check_compile tool: gcc for exceptions_enabled
doing compile
Executing on host: .../bin/arm-none-eabi-gcc
exceptions_enabled21484.cc   -mcpu=cortex-a7 -mfloat-abi=soft   -
fdiagnostics-plain-output -Wno- complain-wrong-lang -S     -o
exceptions_enabled21484.s    (timeout = 800)
spawn -ignore SIGHUP .../bin/arm-none-eabi-gcc
exceptions_enabled21484.cc -mcpu=cortex-a7 -mfloat-abi=soft -
fdiagnostics-plain-output -Wno-complain-wrong-lang -S -o
exceptions_enabled21484.s
pid is 21630 -21630
pid is -1
output is  status 0
PASS: gcc.target/arm/unsigned-extend-1.c (test for excess errors)
PASS: gcc.target/arm/unsigned-extend-1.c scan-assembler-not uxtb
testcase .../gcc/testsuite/gcc.target/arm/arm.exp completed in 1 seconds

Since you don't add -marm, the test will be compiled in Thumb mode,
and still fail?

Since my tests succeeded without it, it didn't think much of it. I can
add -marm to the do-options just be safe. Should I send a V2 with it
or can it be approved with that addition?

... here.
While arm_arm_ok is checking that it's possible to use -marm, I suppose we should also add the -marm to the dg-additional-options in the test.

Is this enough to have a pass on your CI?
Would it be easier for you if I send a V2 with that change?


Based on the history, I assumed that it was expected for this test case to be executed in arm mode. I suppose we could do it in thumb2 mode instead or something similar, but not sure if that's better...?

Kind regards,
Torbjörn



Kind regards,
Torbjörn


Thanks,

Christophe

   unsigned char foo (unsigned char c)
--
2.25.1





Reply via email to