i386: Add V8QI and other 64bit vector permutations [PR89021]

In addition to V8QI permutations, several other missing permutations are
added for 64bit vector modes for TARGET_SSSE3 and TARGET_SSE4_1 targets.

2021-06-10  UroŇ° Bizjak  <ubizjak@gmail.com>

gcc/
	PR target/89021
	* config/i386/i386-expand.c (ix86_split_mmx_punpck):
	Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
	(expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
	(expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
	(expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
	(expand_vec_perm_interleave2): Handle 64bit modes.
	(expand_vec_perm_even_odd_pack): Handle V8QI mode.
	(expand_vec_perm_even_odd_1): Ditto.
	(ix86_vectorize_vec_perm_const): Ditto.
	* config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
	* config/i386/sse.md: ... here.
	* config/i386/mmx.md (*vec_interleave_lowv2sf):
	New insn_and_split pattern.
	(*vec_interleave_highv2sf): Ditto.
	(mmx_pshufbv8qi3): New insn pattern.
	(*mmx_pblendw): Ditto.
4 files changed