On Tue, 8 Jul 2025 at 17:17, Torbjörn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:
>
> Ok for trunk and releases/gcc-15?
>
> --
>
> The scheduler allows the `and` instruction to be placed at 3 different
> locations. Update the function body to contain all 3 locations.
> Also, armv8.1-m.main can use `ldr` instead of `pop` to return.
>

Hi Torbjorn,

Could you give more details about when these changes are needed ? What
options are you using?
FWIW the test passes CI when targeting cortex-m55 /
-march=armv8.1-m.main+mve.fp+fp.dp

Thanks,

Christophe

> gcc/testsuite/ChangeLog:
>
>         * gcc.target/arm/unsigned-extend-2.c: Add missing potential
>         locations for `and` instruction and adjust return instruction.
>
> Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
> ---
>  gcc/testsuite/gcc.target/arm/unsigned-extend-2.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/arm/unsigned-extend-2.c 
> b/gcc/testsuite/gcc.target/arm/unsigned-extend-2.c
> index d9f95a14277..e46573cf39d 100644
> --- a/gcc/testsuite/gcc.target/arm/unsigned-extend-2.c
> +++ b/gcc/testsuite/gcc.target/arm/unsigned-extend-2.c
> @@ -7,15 +7,19 @@
>  ** foo:
>  **     movs    (r[0-9]+), #8
>  ** (
> +** (
> +**     and     r0, r1, r0, lsr #1
>  **     subs    \1, \1, #1
>  **     ands    \1, \1, #255
> -**     and     r0, r1, r0, lsr #1
> -**     bne     .L[0-9]+
> -**     bx      lr
>  ** |
>  **     subs    \1, \1, #1
>  **     and     r0, r1, r0, lsr #1
>  **     ands    \1, \1, #255
> +** |
> +**     subs    \1, \1, #1
> +**     ands    \1, \1, #255
> +**     and     r0, r1, r0, lsr #1
> +** )
>  **     bne     .L[0-9]+
>  **     bx      lr
>  ** |
> @@ -23,7 +27,11 @@
>  **     dls     lr, \1
>  **     and     r0, r1, r0, lsr #1
>  **     le      lr, .L[0-9]+
> +** (
>  **     pop     {pc}
> +** |
> +**     ldr     pc, \[sp\], #4
> +** )
>  ** )
>  */
>
> --
> 2.25.1
>

Reply via email to