i386: Use ix86_output_ssemov for SFmode TYPE_SSEMOV
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 15 Mar 2020 17:21:08 +0000 (10:21 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 15 Mar 2020 17:21:21 +0000 (10:21 -0700)
commit9d74caf21be7025db8fef997e87ebf3b85acaf4a
tree1fef25e9025be3a2f1951bbdcca02b59ebf53494
parentced66da313526c3481ceb57ea1becca7b712444b
i386: Use ix86_output_ssemov for SFmode TYPE_SSEMOV

There is no need to set mode attribute to V16SFmode 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_SI and
MODE_SF.
* config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov
for TYPE_SSEMOV.  Remove TARGET_PREFER_AVX256, TARGET_AVX512VL
and ext_sse_reg_operand check.

gcc/testsuite/

PR target/89229
* gcc.target/i386/pr89229-6a.c: New test.
* gcc.target/i386/pr89229-6b.c: Likewise.
* gcc.target/i386/pr89229-6c.c: Likewise.
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr89229-6a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr89229-6b.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr89229-6c.c [new file with mode: 0644]