On Mon, Mar 29, 2021 at 10:41:17AM +0000, Kyrylo Tkachov wrote:
> Hi all,
> 
> This patch fixes the RTL representation of the move_lo_quad patterns to use 
> aarch64_simd_or_scalar_imm_zero
> for the zero part rather than a vec_duplicate of zero or a const_int 0.
> The expander that generates them is also adjusted so that we use and match 
> the correct const_vector forms throughout.
> 
> Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf.
> Jakub, does this look like what you've had in mind?

I'd probably also remove VQ_2E iterator that is now unused (the VQMOV_NO2E
one is used in other patterns).  But otherwise yes.

> gcc/ChangeLog:
> 
>       PR target/99037
>       * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
>       aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
>       matching const_int 0.
>       (move_lo_quad_internal_be_<mode>): Likewise.
>       (move_lo_quad_<mode>): Update for the above.
> 
> gcc/testsuite/ChangeLog:
> 
>         PR target/99808
>         * gcc.target/aarch64/pr99808.c: New test.



        Jakub

Reply via email to