AVX512FP16: Enable _Float16 autovectorization
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 28 Jan 2019 03:38:02 +0000 (19:38 -0800)
committerliuhongt <hongtao.liu@intel.com>
Fri, 10 Sep 2021 06:59:30 +0000 (14:59 +0800)
commitd959312b429971d69521e91506e304f8fa271a2d
tree23fdb0d0f66f19d988cebfbdfc29ed74c631dd40
parent0458154caafc5438cecf1db8cf96076e384244ab
AVX512FP16: Enable _Float16 autovectorization

gcc/ChangeLog:

* config/i386/i386-expand.c
(ix86_avx256_split_vector_move_misalign): Handle V16HF mode.
* config/i386/i386.c
(ix86_preferred_simd_mode): Handle HF mode.
* config/i386/sse.md (V_256H): New mode iterator.
(avx_vextractf128<mode>): Use it.
(VEC_INIT_MODE): Align vector HFmode condition to vector
HImodes since there're no real HF instruction used.
(VEC_INIT_HALF_MODE): Ditto.
(VIHF): Ditto.
(VIHF_AVX512BW): Ditto.
(*vec_extracthf): Ditto.
(VEC_EXTRACT_MODE): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/vect-float16-1.c: New test.
* gcc.target/i386/vect-float16-10.c: Ditto.
* gcc.target/i386/vect-float16-11.c: Ditto.
* gcc.target/i386/vect-float16-12.c: Ditto.
* gcc.target/i386/vect-float16-2.c: Ditto.
* gcc.target/i386/vect-float16-3.c: Ditto.
* gcc.target/i386/vect-float16-4.c: Ditto.
* gcc.target/i386/vect-float16-5.c: Ditto.
* gcc.target/i386/vect-float16-6.c: Ditto.
* gcc.target/i386/vect-float16-7.c: Ditto.
* gcc.target/i386/vect-float16-8.c: Ditto.
* gcc.target/i386/vect-float16-9.c: Ditto.
15 files changed:
gcc/config/i386/i386-expand.c
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/vect-float16-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-10.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-11.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-12.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/vect-float16-9.c [new file with mode: 0644]