> -----Original Message-----
> From: Wilco Dijkstra <[email protected]>
> Sent: 05 June 2026 17:32
> To: Tamar Christina <[email protected]>; Kyrylo Tkachov
> <[email protected]>; Alice Carlotti <[email protected]>; Alex Coplan
> <[email protected]>; Andrew Pinski
> <[email protected]>
> Cc: GCC Patches <[email protected]>
> Subject: [PATCH] AArch64: Avoid zeroing movprfx on MOV/FMOV
> 
> 
> A zeroing movprfx with merging MOV/FMOV should be avoided since they
> result in a
> read of the destination register - this introduces extra dependencies
> eventhough
> the read has no useful effect. Remove such patterns so that the zero value is
> created via MOV d0, 0. Update various tests.
> 
> Passes regress, OK for commit?

Just to check, so this means that during streaming mode we generate an SVE 0
broadcast using mov right?

If so OK,

But could you add a small comment on top of the patterns to say why we don't
model the zeroing versions?

Thanks,
Tamar

> 
> gcc:
> 
>       * config/aarch64/aarch64-sve.md: Remove zeroing movprfx of
> merging MOV
> 
> gcc/testsuite:
> 
>       * gcc.target/aarch64/sve/acle/asm/dup_bf16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_f16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_f32.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_f64.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_s16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_s32.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_s64.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_s8.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_u16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_u32.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_u64.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/dup_u8.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_s16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_s32.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_s64.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_s8.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_u16.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_u32.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_u64.c: Update.
>       * gcc.target/aarch64/sve/acle/asm/mul_u8.c: Update.
>       * gcc.target/aarch64/sve/vcond_18.c: Update.
> 
> ---
> 
> diff --git a/gcc/config/aarch64/aarch64-sve.md
> b/gcc/config/aarch64/aarch64-sve.md
> index
> 585a587d8cf46ecb9186d97a743813089bf5cbca..f463430ec17c76d67b7a7
> b87b040a6bd896a37ef 100644
> --- a/gcc/config/aarch64/aarch64-sve.md
> +++ b/gcc/config/aarch64/aarch64-sve.md
> @@ -8617,7 +8617,6 @@ (define_insn "*vcond_mask_<mode><vpred>"
>       [ w        , vss , 0  , Upa ; *              ] mov\t%0.<Vetype>, %3/m, 
> #%I1
>       [ w        , vss , Dz , Upa ; *              ] mov\t%0.<Vetype>, %3/z, 
> #%I1
>       [ w        , Ufc , 0  , Upa ; *              ] fmov\t%0.<Vetype>, %3/m, 
> #%1
> -     [ ?w       , Ufc , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, 
> %3/z,
> %0.<Vetype>\;fmov\t%0.<Vetype>, %3/m, #%1
>       [ ?&w      , vss , w  , Upa ; yes            ] movprfx\t%0, 
> %2\;mov\t%0.<Vetype>,
> %3/m, #%I1
>       [ ?&w      , Ufc , w  , Upa ; yes            ] movprfx\t%0,
> %2\;fmov\t%0.<Vetype>, %3/m, #%1
>    }
> @@ -8639,8 +8638,6 @@ (define_insn "@aarch64_sel_dup<mode>"
>    {@ [ cons: =0 , 1 , 2  , 3   ; attrs: movprfx ]
>       [ ?w       , r , 0  , Upl ; *              ] mov\t%0.<Vetype>, %3/m, 
> %<vwcore>1
>       [ w        , w , 0  , Upl ; *              ] mov\t%0.<Vetype>, %3/m, 
> %<Vetype>1
> -     [ ??w      , r , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, %3/z,
> %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<vwcore>1
> -     [ ?&w      , w , Dz , Upl ; yes            ] movprfx\t%0.<Vetype>, %3/z,
> %0.<Vetype>\;mov\t%0.<Vetype>, %3/m, %<Vetype>1
>       [ ??&w     , r , w  , Upl ; yes            ] movprfx\t%0, 
> %2\;mov\t%0.<Vetype>,
> %3/m, %<vwcore>1
>       [ ?&w      , w , w  , Upl ; yes            ] movprfx\t%0, 
> %2\;mov\t%0.<Vetype>,
> %3/m, %<Vetype>1
>    }
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
> index
> db47d849c5fffd7a8954bbca688b8962d57b3e30..fd9a654f42a768b41163d
> 67a7bc845a325ea3ded 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_bf16.c
> @@ -23,7 +23,7 @@ TEST_UNIFORM_ZD (dup_h4_bf16_m, svbfloat16_t,
> __bf16,
> 
>  /*
>  ** dup_h4_bf16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, h4
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
> index
> 68e41ab15fd98374a5e2b2a0e910df61303b9380..2f276a117012528e5802
> 80ed5a87d76e92e8b48c 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f16.c
> @@ -151,7 +151,7 @@ TEST_UNIFORM_Z (dup_513_f16_z, svfloat16_t,
>               z0 = svdup_f16_z (p0, 513))
>  /*
>  ** dup_h4_f16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, h4
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
> index
> 29f4e520cf92d06031a036789f631a6e5bd616f2..d5a8f6f4d6b74282634cd
> 8d252919b915378d5be 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f32.c
> @@ -108,7 +108,7 @@ TEST_UNIFORM_ZD (dup_s4_f32_m, svfloat32_t,
> float,
> 
>  /*
>  ** dup_1_f32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   fmov    z0\.s, p0/m, #1\.0(?:e\+0)?
>  **   ret
>  */
> @@ -127,7 +127,7 @@ TEST_UNIFORM_Z (dup_0_f32_z, svfloat32_t,
> 
>  /*
>  ** dup_8_f32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   fmov    z0\.s, p0/m, #8\.0(?:e\+0)?
>  **   ret
>  */
> @@ -147,7 +147,7 @@ TEST_UNIFORM_Z (dup_513_f32_z, svfloat32_t,
> 
>  /*
>  ** dup_s4_f32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   mov     z0\.s, p0/m, s4
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
> index
> 6501b86fb89c88b61942e4dc3119175925359948..f4313864f3f708efd0da
> 99ccccd22decd2403877 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_f64.c
> @@ -108,7 +108,7 @@ TEST_UNIFORM_ZD (dup_d4_f64_m, svfloat64_t,
> double,
> 
>  /*
>  ** dup_1_f64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   fmov    z0\.d, p0/m, #1\.0(?:e\+0)?
>  **   ret
>  */
> @@ -127,7 +127,7 @@ TEST_UNIFORM_Z (dup_0_f64_z, svfloat64_t,
> 
>  /*
>  ** dup_8_f64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   fmov    z0\.d, p0/m, #8\.0(?:e\+0)?
>  **   ret
>  */
> @@ -147,7 +147,7 @@ TEST_UNIFORM_Z (dup_513_f64_z, svfloat64_t,
> 
>  /*
>  ** dup_d4_f64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   mov     z0\.d, p0/m, d4
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
> index
> 5bcd3b45751762c15bdc26f5820305eb68f2b8d2..66b45ef3277d972255d
> 3682603c6ab1f1ccd3601 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s16.c
> @@ -950,7 +950,7 @@ TEST_UNIFORM_Z (dup_0_s16_z, svint16_t,
> 
>  /*
>  ** dup_w0_s16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
> index
> b9cb1e5883d77d35e3c737e9447eb20e7c0adc0b..2337c370801b5a49563
> 370fbfb81f0da05b1315c 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s32.c
> @@ -918,7 +918,7 @@ TEST_UNIFORM_Z (dup_0_s32_z, svint32_t,
> 
>  /*
>  ** dup_w0_s32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   mov     z0\.s, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
> index
> e63bcf225d7ddfe9bf583f5941eed000fcef6be6..de702273af85faa6adef0f8
> 58ca2138a71b73b24 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s64.c
> @@ -918,7 +918,7 @@ TEST_UNIFORM_Z (dup_0_s64_z, svint64_t,
> 
>  /*
>  ** dup_x0_s64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   mov     z0\.d, p0/m, x0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
> index
> 66c8c92e27cf95ce235efcc2cb450158ec521f51..c984eeb51c443a46e4edc0
> 7c942dde20b9e83cae 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_s8.c
> @@ -284,7 +284,7 @@ TEST_UNIFORM_Z (dup_0_s8_z, svint8_t,
> 
>  /*
>  ** dup_w0_s8_z:
> -**   movprfx z0\.b, p0/z, z0\.b
> +**   movi    d0, #?0
>  **   mov     z0\.b, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
> index
> 284d0476a9d3c1faccf5d7609d5e6be6e4969a5c..0825a1503add16404393
> 0dfc07ea35e7048636c6 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u16.c
> @@ -950,7 +950,7 @@ TEST_UNIFORM_Z (dup_0_u16_z, svuint16_t,
> 
>  /*
>  ** dup_w0_u16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
> index
> 77f39cc267b55f3834a7a9d33172649120769fcd..3416ff2808efab29bacd44
> 303691b3d3261ad7bb 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u32.c
> @@ -918,7 +918,7 @@ TEST_UNIFORM_Z (dup_0_u32_z, svuint32_t,
> 
>  /*
>  ** dup_w0_u32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   mov     z0\.s, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
> index
> 385b427f4972df360af812b97179834ccebddd43..f31648ce2eb738c32e890
> 36cb83cc34771e96d2d 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u64.c
> @@ -918,7 +918,7 @@ TEST_UNIFORM_Z (dup_0_u64_z, svuint64_t,
> 
>  /*
>  ** dup_x0_u64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   mov     z0\.d, p0/m, x0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
> index
> 8f2be55f23dcccff07dd6c078358839b1467610e..bebb62a01d264c6bc4038
> 1b822aaf758a148dad4 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/dup_u8.c
> @@ -284,7 +284,7 @@ TEST_UNIFORM_Z (dup_0_u8_z, svuint8_t,
> 
>  /*
>  ** dup_w0_u8_z:
> -**   movprfx z0\.b, p0/z, z0\.b
> +**   movi    d0, #?0
>  **   mov     z0\.b, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
> index
> 4148097cc63cb0bce6326e6bb4cae3d28364a407..fb680a90923003895e65
> 2aeaec8aa98a3ce3ed84 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
> @@ -333,7 +333,7 @@ TEST_UNIFORM_Z (mul_1op1_s16_z_tied2,
> svint16_t,
> 
>  /*
>  ** mul_1op1n_s16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
> index
> 2c53e3f14d64710fd663a76cb2a2721ea4e254c3..fac7fa9c2796beb0ce4dd1
> 53543f3d1a4f943777 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
> @@ -343,7 +343,7 @@ TEST_UNIFORM_Z (mul_1op1_s32_z_tied2,
> svint32_t,
> 
>  /*
>  ** mul_1op1n_s32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   mov     z0\.s, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
> index
> 55342a13f8bd623103abbda13377f25ce6b9a8b8..a7ddf7efae8d8747af891
> 29e6e3b89225ba0e83d 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
> @@ -342,7 +342,7 @@ TEST_UNIFORM_Z (mul_1op1_s64_z_tied2,
> svint64_t,
> 
>  /*
>  ** mul_1op1n_s64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   mov     z0\.d, p0/m, x0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
> index
> 786a424eeead9f1eb767e57a9ef932effbda4288..e85ed420ddd1497c90f4f3
> 8164182bc3b9a3fee0 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
> @@ -333,7 +333,7 @@ TEST_UNIFORM_Z (mul_1op1_s8_z_tied2, svint8_t,
> 
>  /*
>  ** mul_1op1n_s8_z:
> -**   movprfx z0\.b, p0/z, z0\.b
> +**   movi    d0, #?0
>  **   mov     z0\.b, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
> index
> ed08635382d51cceb7e3f519b5398d09bd75eaae..6f193bccbb6bcb70bf963
> 4b1e75c89adbaa64dc9 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
> @@ -314,7 +314,7 @@ TEST_UNIFORM_Z (mul_1op1_u16_z_tied2,
> svuint16_t,
> 
>  /*
>  ** mul_1op1n_u16_z:
> -**   movprfx z0\.h, p0/z, z0\.h
> +**   movi    d0, #?0
>  **   mov     z0\.h, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
> index
> f82ac4269e8fd37e9c9455f6f1e0d028e7457c97..c1638ae1645e165ca9b00f
> 8b2d994d518c738e9b 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
> @@ -314,7 +314,7 @@ TEST_UNIFORM_Z (mul_1op1_u32_z_tied2,
> svuint32_t,
> 
>  /*
>  ** mul_1op1n_u32_z:
> -**   movprfx z0\.s, p0/z, z0\.s
> +**   movi    d0, #?0
>  **   mov     z0\.s, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
> index
> 9f1bfff5fd2fd0a4f9d09d962f8ad9dd81eb1e49..1161871483b6eea88fcb58
> d1cfd50c9e956fadef 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
> @@ -335,7 +335,7 @@ TEST_UNIFORM_Z (mul_1op1_u64_z_tied2,
> svuint64_t,
> 
>  /*
>  ** mul_1op1n_u64_z:
> -**   movprfx z0\.d, p0/z, z0\.d
> +**   movi    d0, #?0
>  **   mov     z0\.d, p0/m, x0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
> index
> b2c1edf5ff8245dc8ec08a11493571f7d01aabac..48593487f8c476b916f923
> 9fa181e29337ee2033 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u8.c
> @@ -314,7 +314,7 @@ TEST_UNIFORM_Z (mul_1op1_u8_z_tied2,
> svuint8_t,
> 
>  /*
>  ** mul_1op1n_u8_z:
> -**   movprfx z0\.b, p0/z, z0\.b
> +**   movi    d0, #?0
>  **   mov     z0\.b, p0/m, w0
>  **   ret
>  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
> b/gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
> index
> bd83e4c377d03002e746e3c449eeab4ee629fa07..40451b1fb56797a0a201
> 346372a897bd646c4c13 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/vcond_18.c
> @@ -31,14 +31,14 @@ TEST_ALL (DEF_LOOP)
>  /* { dg-final { scan-assembler-times {\tmov\tz[0-9]+\.h, p[0-9]+/z, #-
> 16128\n} 1 } } */
>  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-9]+, z[0-9]+\.h,
> z[0-9]+\.h\n} 2 } } */
> 
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.s), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #2\.0(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.s), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #1\.25(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.s), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #-4\.0(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.s), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #-2\.5(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m,
> #2\.0(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m,
> #1\.25(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m, #-
> 4\.0(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m, #-
> 2\.5(?:e[+]0)?\n} } } */
>  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-9]+, z[0-9]+\.s,
> z[0-9]+\.s\n} 2 } } */
> 
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.d), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #2\.0(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.d), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #1\.25(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.d), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #-4\.0(?:e[+]0)?\n} } } */
> -/* { dg-final { scan-assembler {\tmovprfx\t(z[0-9]+\.d), (p[0-7])/z,
> \1\n\tfmov\t\1, \2/m, #-2\.5(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m,
> #2\.0(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m,
> #1\.25(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m, #-
> 4\.0(?:e[+]0)?\n} } } */
> +/* { dg-final { scan-assembler {\tfmov\tz[0-9]+\.s, p[0-9]+/m, #-
> 2\.5(?:e[+]0)?\n} } } */
>  /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-9]+, z[0-9]+\.d,
> z[0-9]+\.d\n} 2 } } */

Reply via email to