]> git.ipfire.org Git - thirdparty/gcc.git/commit
i386: Clear upper bits of XMM register for V4HFmode/V2HFmode operations [PR110762]
authorliuhongt <hongtao.liu@intel.com>
Fri, 4 Aug 2023 07:35:54 +0000 (15:35 +0800)
committerliuhongt <hongtao.liu@intel.com>
Mon, 7 Aug 2023 11:51:55 +0000 (19:51 +0800)
commit831017d5e72173f2c58e5475b7fcd35ee07a601f
tree1a4f88e948b1dd71f0f1a4d1e75e2ed3dc5ed5f6
parentf51b8e5b7f44bbb70b8cef270d35ae7ac6ff41ef
i386: Clear upper bits of XMM register for V4HFmode/V2HFmode operations [PR110762]

Similar like r14-2786-gade30fad6669e5, the patch is for V4HF/V2HFmode.

gcc/ChangeLog:

PR target/110762
* config/i386/mmx.md (<insn><mode>3): Changed from define_insn
to define_expand and break into ..
(<insn>v4hf3): .. this.
(divv4hf3): .. this.
(<insn>v2hf3): .. this.
(divv2hf3): .. this.
(movd_v2hf_to_sse): New define_expand.
(movq_<mode>_to_sse): Extend to V4HFmode.
(mmxdoublevecmode): Ditto.
(V2FI_V4HF): New mode iterator.
* config/i386/sse.md (*vec_concatv4sf): Extend to hanlde V8HF
by using mode iterator V4SF_V8HF, renamed to ..
(*vec_concat<mode>): .. this.
(*vec_concatv4sf_0): Extend to handle V8HF by using mode
iterator V4SF_V8HF, renamed to ..
(*vec_concat<mode>_0): .. this.
(*vec_concatv8hf_movss): New define_insn.
(V4SF_V8HF): New mode iterator.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr110762-v4hf.c: New test.
gcc/config/i386/mmx.md
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/pr110762-v4hf.c [new file with mode: 0644]