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


Reply via email to