AVX512FP16: Add vfcmaddcsh/vfmaddcsh/vfcmulcsh/vfmulcsh.

gcc/ChangeLog:

	* config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch):
	New intrinsic.
	(_mm_mask3_fcmadd_sch): Likewise.
	(_mm_maskz_fcmadd_sch): Likewise.
	(_mm_fcmadd_sch): Likewise.
	(_mm_mask_fmadd_sch): Likewise.
	(_mm_mask3_fmadd_sch): Likewise.
	(_mm_maskz_fmadd_sch): Likewise.
	(_mm_fmadd_sch): Likewise.
	(_mm_mask_fcmadd_round_sch): Likewise.
	(_mm_mask3_fcmadd_round_sch): Likewise.
	(_mm_maskz_fcmadd_round_sch): Likewise.
	(_mm_fcmadd_round_sch): Likewise.
	(_mm_mask_fmadd_round_sch): Likewise.
	(_mm_mask3_fmadd_round_sch): Likewise.
	(_mm_maskz_fmadd_round_sch): Likewise.
	(_mm_fmadd_round_sch): Likewise.
	(_mm_fcmul_sch): Likewise.
	(_mm_mask_fcmul_sch): Likewise.
	(_mm_maskz_fcmul_sch): Likewise.
	(_mm_fmul_sch): Likewise.
	(_mm_mask_fmul_sch): Likewise.
	(_mm_maskz_fmul_sch): Likewise.
	(_mm_fcmul_round_sch): Likewise.
	(_mm_mask_fcmul_round_sch): Likewise.
	(_mm_maskz_fcmul_round_sch): Likewise.
	(_mm_fmul_round_sch): Likewise.
	(_mm_mask_fmul_round_sch): Likewise.
	(_mm_maskz_fmul_round_sch): Likewise.
	* config/i386/i386-builtin.def: Add corresponding new builtins.
	* config/i386/sse.md
	(avx512fp16_fmaddcsh_v8hf_maskz<round_expand_name>): New expander.
	(avx512fp16_fcmaddcsh_v8hf_maskz<round_expand_name>): Ditto.
	(avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
	New define insn.
	(avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto.
	(avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
	Ditto.
	* config/i386/subst.md (mask_scalarcz_name): New.
	(mask_scalarc_name): Ditto.
	(mask_scalarc_operand3): Ditto.
	(mask_scalarcz_operand4): Ditto.
	(round_scalarcz_name): Ditto.
	(round_scalarc_mask_operand3): Ditto.
	(round_scalarcz_mask_operand4): Ditto.
	(round_scalarc_mask_op3): Ditto.
	(round_scalarcz_mask_op4): Ditto.
	(round_scalarcz_constraint): Ditto.
	(round_scalarcz_nimm_predicate): Ditto.
	(mask_scalarcz): Ditto.
	(mask_scalarc): Ditto.
	(round_scalarcz): Ditto.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/avx-1.c: Add test for new builtins.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* gcc.target/i386/sse-14.c: Add test for new intrinsics.
	* gcc.target/i386/sse-22.c: Ditto.
9 files changed