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