* config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
authorSebastian Peryt <sebastian.peryt@intel.com>
Tue, 2 May 2017 13:07:12 +0000 (15:07 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 2 May 2017 13:07:12 +0000 (15:07 +0200)
commit1853f5c77f124d60d60fcc0859b742d22cd4d5c0
treeb3a11c3ddc3947ee29e4fef4b78f881031120882
parent2bba75411e14cdf1ee67f4ee965665cf6c6c6ea7
* config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
(_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
(mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
(mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
(mm_maskz_sub_round_ss, _mm_mask_add_sd)
(mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
(mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
(mm_maskz_sub_ss): New intrinsics.
* config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
* config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
(__builtin_ia32_subss_mask_round): New builtins.
* config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
* config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
Renamed to ...
(<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
Changed to ...
(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
... this.

testsuite/ChangeLog:

* gcc.target/i386/avx512f-vaddsd-1.c (_mm_mask_add_sd)
(_mm_maskz_add_sd, _mm_mask_add_round_sd)
(_mm_maskz_add_round_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vaddsd-2.c: New.
* gcc.target/i386/avx512f-vaddss-1.c (_mm_mask_add_ss)
(_mm_maskz_add_ss, _mm_mask_add_round_ss)
(_mm_maskz_add_round_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vaddss-2.c: New.
* gcc.target/i386/avx512f-vsubsd-1.c (_mm_mask_sub_sd)
(_mm_maskz_sub_sd, _mm_mask_sub_round_sd)
(_mm_maskz_sub_round_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vsubsd-2.c: New.
* gcc.target/i386/avx512f-vsubss-1.c (_mm_mask_sub_ss)
(_mm_maskz_sub_ss, _mm_mask_sub_round_ss)
(_mm_maskz_sub_round_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vsubss-2.c: New.
* gcc.target/i386/avx-1.c (__builtin_ia32_addsd_mask_round)
(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
(__builtin_ia32_subss_mask_round): Test new builtins.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/sse-14.c (_mm_maskz_add_round_sd)
(_mm_maskz_add_round_ss, _mm_maskz_sub_round_sd)
(_mm_maskz_sub_round_ss, _mm_mask_add_round_sd)
(_mm_mask_add_round_ss, _mm_mask_sub_round_sd)
(_mm_mask_sub_round_ss): Test new intrinsics.
* gcc.target/i386/testround-1.c: Ditto.

From-SVN: r247498
20 files changed:
gcc/ChangeLog
gcc/config/i386/avx512fintrin.h
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-1.c
gcc/testsuite/gcc.target/i386/avx512f-vaddsd-1.c
gcc/testsuite/gcc.target/i386/avx512f-vaddsd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vaddss-1.c
gcc/testsuite/gcc.target/i386/avx512f-vaddss-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vsubsd-1.c
gcc/testsuite/gcc.target/i386/avx512f-vsubsd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vsubss-1.c
gcc/testsuite/gcc.target/i386/avx512f-vsubss-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sse-13.c
gcc/testsuite/gcc.target/i386/sse-14.c
gcc/testsuite/gcc.target/i386/sse-23.c
gcc/testsuite/gcc.target/i386/testround-1.c