gcc/
authorIlya Tocar <tocarip@gmail.com>
Fri, 15 Aug 2014 12:47:41 +0000 (16:47 +0400)
committerIlya Tocar <tocarip@gcc.gnu.org>
Fri, 15 Aug 2014 12:47:41 +0000 (16:47 +0400)
commit275be1dac2866fa0e50a73ad36bdc45760796d63
tree5e33170e9f7e7e04073f2aa45b6a6c21dc91df80
parentf613bc0fbe95a4eaa2abe38c7dd6c17e9e5de8bf
gcc/

PR target/61878
* 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/

PR target/61878
* 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.

From-SVN: r214019
47 files changed:
gcc/ChangeLog
gcc/config/i386/avx512fintrin.h
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512f-typecast-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-2.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c
gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-2.c