[PATCH] PR61878

Uros Bizjak ubizjak@gmail.com
Wed Aug 13 13:19:00 GMT 2014


On Wed, Aug 13, 2014 at 2:34 PM, Ilya Tocar <tocarip.intel@gmail.com> wrote:

> This patch adds missing intrinsics and tests for them.
> Ok for trunk?
>
> gcc/ChangeLog:
>
> 2014-08-13  Ilya Tocar  <ilya.tocar@intel.com>
>
>         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
>         (_mm512_mask_cmpge_epu32_mask): Ditto.
>         (_mm512_cmpge_epu32_mask): Ditto.
>         (_mm512_mask_cmpge_epi64_mask): Ditto.
>         (_mm512_cmpge_epi64_mask): Ditto.
>         (_mm512_mask_cmpge_epu64_mask): Ditto.
>         (_mm512_cmpge_epu64_mask): Ditto.
>         (_mm512_mask_cmple_epi32_mask): Ditto.
>         (_mm512_cmple_epi32_mask): Ditto.
>         (_mm512_mask_cmple_epu32_mask): Ditto.
>         (_mm512_cmple_epu32_mask): Ditto.
>         (_mm512_mask_cmple_epi64_mask): Ditto.
>         (_mm512_cmple_epi64_mask): Ditto.
>         (_mm512_mask_cmple_epu64_mask): Ditto.
>         (_mm512_cmple_epu64_mask): Ditto.
>         (_mm512_mask_cmplt_epi32_mask): Ditto.
>         (_mm512_cmplt_epi32_mask): Ditto.
>         (_mm512_mask_cmplt_epu32_mask): Ditto.
>         (_mm512_cmplt_epu32_mask): Ditto.
>         (_mm512_mask_cmplt_epi64_mask): Ditto.
>         (_mm512_cmplt_epi64_mask): Ditto.
>         (_mm512_mask_cmplt_epu64_mask): Ditto.
>         (_mm512_cmplt_epu64_mask): Ditto.
>         (_mm512_mask_cmpneq_epi32_mask): Ditto.
>         (_mm512_mask_cmpneq_epu32_mask): Ditto.
>         (_mm512_cmpneq_epu32_mask): Ditto.
>         (_mm512_mask_cmpneq_epi64_mask): Ditto.
>         (_mm512_cmpneq_epi64_mask): Ditto.
>         (_mm512_mask_cmpneq_epu64_mask): Ditto.
>         (_mm512_cmpneq_epu64_mask): Ditto.
>         (_mm512_castpd_ps): Ditto.
>         (_mm512_castpd_si512): Ditto.
>         (_mm512_castps_pd): Ditto.
>         (_mm512_castps_si512): Ditto.
>         (_mm512_castsi512_ps): Ditto.
>         (_mm512_castsi512_pd): Ditto.
>         (_mm512_castpd512_pd128): Ditto.
>         (_mm512_castps512_ps128): Ditto.
>         (_mm512_castsi512_si128): Ditto.
>         (_mm512_castpd512_pd256): Ditto.
>         (_mm512_castps512_ps256): Ditto.
>         (_mm512_castsi512_si256): Ditto.
>         (_mm512_castpd128_pd512): Ditto.
>         (_mm512_castps128_ps512): Ditto.
>         (_mm512_castsi128_si512): Ditto.
>         (_mm512_castpd256_pd512): Ditto.
>         (_mm512_castps256_ps512): Ditto.
>         (_mm512_castsi256_si512): Ditto.
>         (_mm512_cmpeq_epu32_mask): Ditto.
>         (_mm512_mask_cmpeq_epu32_mask): Ditto.
>         (_mm512_mask_cmpeq_epu64_mask): Ditto.
>         (_mm512_cmpeq_epu64_mask): Ditto.
>         (_mm512_cmpgt_epu32_mask): Ditto.
>         (_mm512_mask_cmpgt_epu32_mask): Ditto.
>         (_mm512_mask_cmpgt_epu64_mask): Ditto.
>         (_mm512_cmpgt_epu64_mask): Ditto.
>         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
>         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
>         * config/i386/i386.c (enum ix86_builtins): Add
>         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
>         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
>         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
>         (bdesc_args): Add __builtin_ia32_si512_256si,
>         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
>         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
>         __builtin_ia32_pd512_pd.
>         (ix86_expand_args_builtin): Handle new FTYPEs.
>         * config/i386/sse.md (castmode): Add 512-bit modes.
>         (AVX512MODE2P): New.
>         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
>         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
>
> gcc/testsuite/ChangeLog:
>
> 2014-08-13  Ilya Tocar  <ilya.tocar@intel.com>
>
>         * gcc.target/i386/avx512f-typecast-1.c: New test.
>         * gcc.target/i386/avx512f-vpcmpequd-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpequd-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpequq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpequq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpged-1.c: Add new intrinsic.
>         * gcc.target/i386/avx512f-vpcmpged-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeud-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeud-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeuq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgeuq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgtud-1.c: New test.
>         * gcc.target/i386/avx512f-vpcmpgtud-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgtuq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpgtuq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpled-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpled-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleud-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleud-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleuq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpleuq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltd-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltd-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltud-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltud-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltuq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpltuq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpneqd-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpneqd-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpneqq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpneqq-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpnequd-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpnequd-2.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpnequq-1.c: Ditto.
>         * gcc.target/i386/avx512f-vpcmpnequq-2.c: Ditto.

Please also mention PR target/61878 in the ChangeLog.

OK with this change for mainline and (after a couple of days) also for 4.9.

Thanks,
Uros.



More information about the Gcc-patches mailing list