Le lun. 13 juil. 2026, 17:01, Torbjörn SVENSSON <
[email protected]> a écrit :
> Ok for trunk, releases/gcc-16 and releases/gcc-15?
>
> --
>
> In r15-1579-g792f97b44ffc5e, a new late-combine pass was introduced that
> changes the generated assembler from
> ldr r3, [sp]
> vdup.32 q8, r3
> to
> vld1.32 {d16[], d17[]}, [sp]
> with -mthumb and from
> vmov r3, s0 @ int
> vdup.32 q8, r3
> to
> vdup.32 q8, d0[0]
> with -marm.
>
> In both modes, the check
>
> /* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, r[0-9]+} 4 } } */
>
> will no longer match. Avoid the fail state by disabling the late-combine
> pass.
>
Wasn't Alexandre 's patch in gcc-16-7209-gc035985fd611 supposed to fix that?
Maybe it was applied to gcc16 at that time? (Note that Linaro CI sent a
notification when it was applied, so it didn't fully fix the problem AFAIU)
Thanks,
Christophe
> gcc/testsuite/ChangeLog:
>
> PR testsuite/124043
> * gcc.target/arm/crypto-vsha1cq_u32.c: Add
> -fno-late-combine-instructions to test.
> * gcc.target/arm/crypto-vsha1h_u32.c: Likewise.
> * gcc.target/arm/crypto-vsha1mq_u32.c: Likewise.
> * gcc.target/arm/crypto-vsha1pq_u32.c: Likewise.
>
> Signed-off-by: Torbjörn SVENSSON <[email protected]>
> ---
> gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c | 2 +-
> gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c | 2 +-
> gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c | 2 +-
> gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> index 0cadd19c4dc..8c26ac204d2 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> @@ -1,7 +1,7 @@
> /* { dg-do compile } */
> /* { dg-require-effective-target arm_crypto_ok } */
> /* { dg-add-options arm_crypto } */
> -/* { dg-additional-options "-O3" } */
> +/* { dg-additional-options "-O3 -fno-late-combine-instructions" } */
>
> #include "arm_neon.h"
>
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> index 33af705c59e..c8a47f16991 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> @@ -1,7 +1,7 @@
> /* { dg-do compile } */
> /* { dg-require-effective-target arm_crypto_ok } */
> /* { dg-add-options arm_crypto } */
> -/* { dg-additional-options "-O3" } */
> +/* { dg-additional-options "-O3 -fno-late-combine-instructions" } */
>
> #include "arm_neon.h"
>
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> index bdd1c4f3315..a5a0103049b 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> @@ -1,7 +1,7 @@
> /* { dg-do compile } */
> /* { dg-require-effective-target arm_crypto_ok } */
> /* { dg-add-options arm_crypto } */
> -/* { dg-additional-options "-O3" } */
> +/* { dg-additional-options "-O3 -fno-late-combine-instructions" } */
>
> #include "arm_neon.h"
>
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> index d48a07c6fa4..9ef962c28ae 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> @@ -1,7 +1,7 @@
> /* { dg-do compile } */
> /* { dg-require-effective-target arm_crypto_ok } */
> /* { dg-add-options arm_crypto } */
> -/* { dg-additional-options "-O3" } */
> +/* { dg-additional-options "-O3 -fno-late-combine-instructions" } */
>
> #include "arm_neon.h"
>
> --
> 2.43.0
>
>