i386: Add comparisons for 4-byte vectors [PR100637]

2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_sse_movcc):
	Handle V4QI and V2HI modes.
	(ix86_expand_sse_movcc): Ditto.
	* config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
	New instruction pattern.
	(*eq<VI_32:mode>3): Ditto.
	(*gt<VI_32:mode>3): Ditto.
	(*xop_pcmov_<VI_32:mode>): Ditto.
	(mmx_pblendvb32): Ditto.
	(mmx_pblendvb64): Rename from mmx_pblendvb.
	(vec_cmp<VI_32:mode><VI_32:mode>): New expander.
	(vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
	(vcond<VI_32:mode><VI_32:mode>): Ditto.
	(vcondu<VI_32:mode><VI_32:mode>): Ditto.
	(vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.

gcc/testsuite/

	PR target/100637
	* g++.target/i386/pr100637-1b.C: New test.
	* g++.target/i386/pr100637-1w.C: Ditto.
	* gcc.target/i386/pr100637-2b.c: Ditto.
	* gcc.target/i386/pr100637-2w.c: Ditto.
6 files changed