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?
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?
Kind regards,
Torbjörn
Thanks,
Christophe
unsigned char foo (unsigned char c)
--
2.25.1