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? So your patch will make the test unsupported on m33, m3, m55 and m7 while it currently passes? Am I missing something? 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? > >> > >> Kind regards, > >> Torbjörn > >> > >>> > >>> Thanks, > >>> > >>> Christophe > >>> > >>>> unsigned char foo (unsigned char c) > >>>> -- > >>>> 2.25.1 > >>>> > >> > > >