On 14/07/2026 18:18, Torbjörn SVENSSON wrote:
> Ok for trunk, releases/gcc-16 and releases/gcc-15?
> For releases/gcc-15, I'd also like to pick r16-7209-gc035985fd611df 
> (https://gcc.gnu.org/pipermail/gcc-patches/2026-January/707223.html)
> to make picking this change easier.
> 
> I'll leave the ticket open for the real fix after this is pushed.
> 

OK.

R.

> Kind regards,
> Torbjörn
> 
> --
> 
> 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 -mfloat-abi=hard. Due to this changed, the check
> 
> /* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, r[0-9]+} 4 } } */
> 
> will no longer match. Mark the test as xfail when testing with -mthumb
> -mfloat-abi=hard.
> 
> gcc/testsuite/ChangeLog:
> 
>       PR testsuite/124043
>       * gcc.target/arm/crypto-vsha1cq_u32.c: Xfail test for -mthumb
>       -mfloat-abi=hard.
>       * 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 6a64b61299b..e2835cf4122 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
> @@ -31,5 +31,5 @@ uint32_t foo (void)
>  TEST_SHA1C_VEC_SELECT (GET_LANE)
>  
>  /* { dg-final { scan-assembler-times {sha1c.32\tq[0-9]+, q[0-9]+} 5 } } */
> -/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 } } */
> +/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 { xfail { arm_thumb2 && arm_hf_eabi } } } } 
> */
>  /* { dg-final { scan-assembler-times {vmov.32\tr[0-9]+, d[0-9]+\[[0-9]+\]} 3 
> } } */
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c 
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> index accf83e88c4..c67048ab363 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
> @@ -27,5 +27,5 @@ uint32_t foo (void)
>  TEST_SHA1H_VEC_SELECT (GET_LANE)
>  
>  /* { dg-final { scan-assembler-times {sha1h.32\tq[0-9]+, q[0-9]+} 5 } } */
> -/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 } } */
> +/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 { xfail { arm_thumb2 && arm_hf_eabi } } } } 
> */
>  /* { dg-final { scan-assembler-times {vmov.32\tr[0-9]+, d[0-9]+\[[0-9]+\]} 3 
> } } */
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c 
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> index 9d6aa45a067..967b682de27 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
> @@ -31,5 +31,5 @@ uint32_t foo (void)
>  TEST_SHA1M_VEC_SELECT (GET_LANE)
>  
>  /* { dg-final { scan-assembler-times {sha1m.32\tq[0-9]+, q[0-9]+} 5 } } */
> -/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 } } */
> +/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 { xfail { arm_thumb2 && arm_hf_eabi } } } } 
> */
>  /* { dg-final { scan-assembler-times {vmov.32\tr[0-9]+, d[0-9]+\[[0-9]+\]} 3 
> } } */
> diff --git a/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c 
> b/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> index 5fbcad2d209..09e76325696 100644
> --- a/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> +++ b/gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
> @@ -31,5 +31,5 @@ uint32_t foo (void)
>  TEST_SHA1P_VEC_SELECT (GET_LANE)
>  
>  /* { dg-final { scan-assembler-times {sha1p.32\tq[0-9]+, q[0-9]+} 5 } } */
> -/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 } } */
> +/* { dg-final { scan-assembler-times {vdup.32\tq[0-9]+, 
> (?:r[0-9]+|d[0-9]+\[[0-9]+\])} 4 { xfail { arm_thumb2 && arm_hf_eabi } } } } 
> */
>  /* { dg-final { scan-assembler-times {vmov.32\tr[0-9]+, d[0-9]+\[[0-9]+\]} 3 
> } } */

Reply via email to