Skip to content

AVX512FP16: Enable vec_cmpmn/vcondmn expanders for HF modes.

gcc/ChangeLog:

* config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable
HFmode mask_cmp.
* config/i386/sse.md (V_128H): New mode iterator.
(V512H): Likewise.
(VFH_256): Likewise.
(VFH_512): Likewise.
(<avx512>_store<mode>_mask): Extend to support HF vector modes.
(vcond<V_512:mode><VF_512:mode>):
Rename to ...
(vcond<V_512H:mode><VFH_512:mode>):
... this, and adjust corresponding mode iterators.
(vcond<V_256:mode><VF_256:mode>): Likewise.
(vcond<V_256H:mode><VFH_256:mode>): Likewise.
(vcond<V_128:mode><VF_128:mode>): Likewise.
(vcond<V_128H:mode><VFH_128:mode>): Likewise.
(vcondu<V_512:mode><VI_AVX512BW:mode>): Likewise.
(vcondu<V_512H:mode><VI_AVX512BW:mode>): Likewise.
(vcondu<V_256:mode><VI_256:mode>): Likewise.
(vcondu<V_256H:mode><VI_256:mode>): Likewise.
(vcondu<V_128:mode><VI124_128:mode>): Likewise.
(vcondu<V_128H:mode><VI124_128:mode>): Likewise.

gcc/testsuite/ChangeLog:

* g++.target/i386/avx512fp16-vcondmn-vec.C: New test.
* gcc.target/i386/avx512fp16-vcondmn-loop.c: Ditto.
* gcc.target/i386/avx512fp16-vec_cmpmn.c: Ditto.

Merge request reports