On Tue, May 9, 2017 at 1:43 PM, Peryt, Sebastian
<sebastian.pe...@intel.com> wrote:
> Hi,
>
> This patch adds missing intrinsics for MAXSD, MAXSS, MINSD and MINSS 
> instructions.
>
> 2017-05-09  Sebastian Peryt  <sebastian.pe...@intel.com>
>
> gcc/
>         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd,
>         _mm_maskz_max_round_sd, _mm_mask_max_round_ss,
>         _mm_maskz_max_round_ss, _mm_mask_min_round_sd,
>         _mm_maskz_min_round_sd, _mm_mask_min_round_ss,
>         _mm_maskz_min_round_ss): New intrinsics.
>         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, 
> INT,
>         V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
>         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round,
>         __builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round,
>         __builtin_ia32_minss_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<code><mode>3<round_saeonly_name>): 
> Renamed to ...
>         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
>         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, 
> %0|%0, %1, %<iptr>2<round_saeonly_op3>}): Changed to ...
>         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, 
> %1, %0<mask_operand3>|%0<mask_operand3>, %1, 
> %<iptr>2<round_saeonly_mask_op3>}): ... this.
>
> gcc/testsuite/
>         * gcc.target/i386/avx512f-vmaxsd-1.c (_mm_mask_max_round_sd,
>         _mm_maskz_max_round_sd): Test new intrinsics.
>         * gcc.target/i386/avx512f-vmaxsd-2.c: New.
>         * gcc.target/i386/avx512f-vmaxss-1.c (_mm_mask_max_round_ss,
>         _mm_maskz_max_round_ss): Test new intrinsics.
>         * gcc.target/i386/avx512f-vmaxss-2.c: New.
>         * gcc.target/i386/avx512f-vminsd-1.c (_mm_mask_min_round_sd,
>         _mm_maskz_min_round_sd): Test new intrinsics.
>         * gcc.target/i386/avx512f-vminsd-2.c: New.
>         * gcc.target/i386/avx512f-vminss-1.c (_mm_mask_min_round_ss,
>         _mm_maskz_min_round_ss): Test new intrinsics.
>         * gcc.target/i386/avx512f-vminss-2.c: New.
>         * gcc.target/i386/avx-1.c (__builtin_ia32_maxsd_mask_round,
>         __builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round,
>         __builtin_ia32_minss_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_max_round_sd,
>         _mm_maskz_max_round_ss, _mm_maskz_min_round_sd,
>         _mm_maskz_min_round_ss, _mm_mask_max_round_sd,
>         _mm_mask_max_round_ss, _mm_mask_min_round_sd,
>         _mm_mask_min_round_ss): Test new intrinsics.
>         * gcc.target/i386/testround-1.c: Ditto.

Approved and committed to mainline SVN.

Thanks,
Uros.

Reply via email to