PR target/89784
	* config/i386/i386.c (enum ix86_builtins): Remove
	IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
	* config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): New builtins.
	* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
	avx512f_vmfmadd_<mode>_mask3<round_name>,
	avx512f_vmfmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfmsub_<mode>_mask<round_name>,
	avx512f_vmfmsub_<mode>_mask3<round_name>,
	*avx512f_vmfmasub_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmadd_<mode>_mask<round_name>,
	*avx512f_vmfnmadd_<mode>_mask3<round_name>,
	*avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
	*avx512f_vmfnmsub_<mode>_mask<round_name>,
	*avx512f_vmfnmsub_<mode>_mask3<round_name>,
	*avx512f_vmfnmasub_<mode>_maskz_1<round_name>): New define_insns.
	(avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
	* config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
	_mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
	_mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
	_mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
	_mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
	_mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
	_mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
	_mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
	_mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
	_mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
	_mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
	_mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
	_mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
	_mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
	_mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
	_mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
	_mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
	_mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
	_mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
	_mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.

	* gcc.target/i386/sse-13.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/sse-23.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/avx-1.c (__builtin_ia32_vfmaddsd3_mask,
	__builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
	__builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
	__builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
	__builtin_ia32_vfmsubss3_mask3): Define.
	* gcc.target/i386/sse-14.c: Add tests for
	_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
	* gcc.target/i386/sse-22.c: Likewise.

2019-03-22  Hongtao Liu  <hongtao.liu@intel.com>

	* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
	for _mm_mask{,3,z}_*.
	* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
	* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
	* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
	* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269868 138bc75d-0d04-0410-961f-82ee72b054a4
27 files changed