[Bug target/89229] Incorrect xmm16-xmm31/ymm16-ymm31 in vector move

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Mar 16 10:52:53 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229

--- Comment #34 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@gcc.gnu.org>:

https://gcc.gnu.org/g:5a3c42b227bbe9e7acb5335088d2255262311bd8

commit r10-7189-g5a3c42b227bbe9e7acb5335088d2255262311bd8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Mar 16 03:48:55 2020 -0700

    i386: Use ix86_output_ssemov for SImode TYPE_SSEMOV

    There is no need to set mode attribute to XImode since ix86_output_ssemov
    can properly encode xmm16-xmm31 registers with and without AVX512VL.

    Remove ext_sse_reg_operand since it is no longer needed.

    gcc/

            PR target/89229
            * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov
            for TYPE_SSEMOV.  Remove ext_sse_reg_operand and TARGET_AVX512VL
            check.
            * config/i386/predicates.md (ext_sse_reg_operand): Removed.

    gcc/testsuite/

            PR target/89229
            * gcc.target/i386/pr89229-7a.c: New test.
            * gcc.target/i386/pr89229-7b.c: Likewise.
            * gcc.target/i386/pr89229-7c.c: Likewise.


More information about the Gcc-bugs mailing list