]> git.ipfire.org Git - thirdparty/gcc.git/commit
Support vec_cmpmn/vcondmn for v2hf/v4hf.
authorliuhongt <hongtao.liu@intel.com>
Mon, 23 Oct 2023 05:40:10 +0000 (13:40 +0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 27 Oct 2023 02:55:50 +0000 (10:55 +0800)
commit7eed861e8ca3f533e56dea6348573caa09f16f5e
tree3cb8a84b9b30fb65730fc7d14e26fa2144e8707e
parentecca503bf4160d81616e355bca1eb7081af0501e
Support vec_cmpmn/vcondmn for v2hf/v4hf.

gcc/ChangeLog:

PR target/103861
* config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle
V2HF/V2BF/V4HF/V4BFmode.
* config/i386/i386.cc (ix86_get_mask_mode): Return QImode when
data_mode is V4HF/V2HFmode.
* config/i386/mmx.md (vec_cmpv4hfqi): New expander.
(vcond_mask_<mode>v4hi): Ditto.
(vcond_mask_<mode>qi): Ditto.
(vec_cmpv2hfqi): Ditto.
(vcond_mask_<mode>v2hi): Ditto.
(mmx_plendvb_<mode>): Add 2 combine splitters after the
patterns.
(mmx_pblendvb_v8qi): Ditto.
(<code>v2hi3): Add a combine splitter after the pattern.
(<code><mode>3): Ditto.
(<code>v8qi3): Ditto.
(<code><mode>3): Ditto.
* config/i386/sse.md (vcond<mode><mode>): Merge this with ..
(vcond<sseintvecmodelower><mode>): .. this into ..
(vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): .. this,
and extend to V8BF/V16BF/V32BFmode.

gcc/testsuite/ChangeLog:

* g++.target/i386/part-vect-vcondhf.C: New test.
* gcc.target/i386/part-vect-vec_cmphf.c: New test.
gcc/config/i386/i386-expand.cc
gcc/config/i386/i386.cc
gcc/config/i386/mmx.md
gcc/config/i386/sse.md
gcc/testsuite/g++.target/i386/part-vect-vcondhf.C [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/part-vect-vec_cmphf.c [new file with mode: 0644]