[Bug target/89229] Incorrect xmm16-xmm31/ymm16-ymm31 in vector move
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 13 10:28:48 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229
--- Comment #31 from Martin Liška <marxin at gcc dot gnu.org> ---
commit r10-7154-gfd8679974b2ded884ffd7d912efef7fe13e4ff4f
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Mar 13 02:48:59 2020 -0700
i386: Use ix86_output_ssemov for DFmode TYPE_SSEMOV
There is no need to set mode attribute to XImode nor V8DFmode since
ix86_output_ssemov can properly encode xmm16-xmm31 registers with and
without AVX512VL.
gcc/
PR target/89229
* config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
* config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
TARGET_AVX512VL and ext_sse_reg_operand check.
gcc/testsuite/
PR target/89229
* gcc.target/i386/pr89229-4a.c: New test.
* gcc.target/i386/pr89229-4b.c: Likewise.
* gcc.target/i386/pr89229-4c.c: Likewise.
More information about the Gcc-bugs
mailing list