This is a GCC 8 backport

    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.

    Co-Authored-By: Jakub Jelinek <ja...@redhat.com>
    gcc/ChangeLog:

            PR target/99037
            PR target/100441
            * 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.
            * config/aarch64/iterators.md (VQ_2E): Delete.

    gcc/testsuite/ChangeLog:

            PR target/99808
            * gcc.target/aarch64/pr99808.c: New test.

Attachment: gcc-8.patch
Description: gcc-8.patch

Reply via email to