Enable VBMI2 support [6/7]
authorJulia Koval <julia.koval@intel.com>
Wed, 29 Nov 2017 18:19:34 +0000 (19:19 +0100)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Wed, 29 Nov 2017 18:19:34 +0000 (18:19 +0000)
commit8d4f237b9fb6e4313a2f87d876027cddc1eb3972
tree2f3121aea1b1bb3ebc24b67b75b76093b991c278
parent1d0a8ae9d44171e066de45c25c80a65de6370876
Enable VBMI2 support [6/7]

gcc/
* config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
_mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
_mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
_mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
* config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
_mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
_mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
_mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
_mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
_mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
_mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
* config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
* config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.

gcc/testsuite/
* gcc.target/i386/avx512f-vpshrdv-1.c: New test.
* gcc.target/i386/avx512f-vpshrdvd-2.c: Ditto.
* gcc.target/i386/avx512f-vpshrdvq-2.c: Ditto.
* gcc.target/i386/avx512f-vpshrdvw-2.c: Ditto.
* gcc.target/i386/avx512f-vpshrdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshrdv-1.c: Ditto.
* gcc.target/i386/avx512vl-vpshrdvd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshrdvq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshrdvw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshrdw-2.c: Ditto.

From-SVN: r255249
18 files changed:
gcc/ChangeLog
gcc/config/i386/avx512vbmi2intrin.h
gcc/config/i386/avx512vbmi2vlintrin.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/avx512f-vpshrdv-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpshrdvd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpshrdvq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpshrdvw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpshrdw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpshrdv-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvd-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvq-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpshrdvw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpshrdw-2.c [new file with mode: 0644]