On Wed, Aug 13, 2014 at 2:34 PM, Ilya Tocar <tocarip.in...@gmail.com> wrote:
> This patch adds missing intrinsics and tests for them. > Ok for trunk? > > gcc/ChangeLog: > > 2014-08-13 Ilya Tocar <ilya.to...@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.to...@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.