Skip to content
Snippets Groups Projects
Commit 7fc4d600 authored by liuhongt's avatar liuhongt
Browse files

Optimize for V{8,16,32}HFmode vec_set/extract/init.

gcc/ChangeLog:

	PR target/102327
	* config/i386/i386-expand.c
	(ix86_expand_vector_init_interleave): Use puncklwd to pack 2
	HFmodes.
	(ix86_expand_vector_set): Use blendw instead of pinsrw.
	* config/i386/i386.c (ix86_can_change_mode_class): Adjust for
	AVX512FP16 which supports 16bit vector load.
	* config/i386/sse.md (avx512bw_interleave_highv32hi<mask_name>):
	Rename to ..
	(avx512bw_interleave_high<mode><mask_name>): .. this, and
	extend to V32HFmode.
	(avx2_interleave_highv16hi<mask_name>): Rename to ..
	(avx2_interleave_high<mode><mask_name>): .. this, and extend
	to V16HFmode.
	(vec_interleave_highv8hi<mask_name>): Rename to ..
	(vec_interleave_high<mode><mask_name>): .. this, and extend to V8HFmode.
	(<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>):
	Rename to ..
	(<mask_codefor>avx512bw_interleave_low<mode><mask_name>):
	this, and extend to V32HFmode.
	(avx2_interleave_lowv16hi<mask_name>): Rename to ..
	(avx2_interleave_low<mode><mask_name>): .. this, and extend to V16HFmode.
	(vec_interleave_lowv8hi<mask_name>): Rename to ..
	(vec_interleave_low<mode><mask_name>): .. this, and extend to V8HFmode.
	(sse4_1_pblendw): Rename to ..
	(sse4_1_pblend<blendsuf>): .. this, and extend to V8HFmode.
	(avx2_pblendph): New define_expand.
	(<sse2p4_1>_pinsr<ssemodesuffix>): Refactor, use
	sseintmodesuffix instead of ssemodesuffix.
	(blendsuf): New mode attr.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/pr102327-1.c: New test.
	* gcc.target/i386/pr102327-2.c: New test.
	* gcc.target/i386/avx512fp16-1c.c: Adjust testcase.
parent feebc22b
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment