i386: Use ix86_output_ssemov for DFmode TYPE_SSEMOV
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 13 Mar 2020 09:48:59 +0000 (02:48 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 13 Mar 2020 09:49:16 +0000 (02:49 -0700)
commitfd8679974b2ded884ffd7d912efef7fe13e4ff4f
tree119536201b931e0d76cd136de322b8363ddc85ab
parentdbf3dc75888623e9d4bb7cc5e9c30caa9b24ffe7
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.
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr89229-4a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr89229-4b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr89229-4c.c [new file with mode: 0644]