Enable VBMI2 support [3/7]
authorJulia Koval <julia.koval@intel.com>
Thu, 23 Nov 2017 21:03:55 +0000 (22:03 +0100)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Thu, 23 Nov 2017 21:03:55 +0000 (21:03 +0000)
commitde8603793a901cb44118567fb3b4fd8e39687e8b
tree2f39fc1730a73923c9b899d20583b45cd9abfbe6
parent11cca3ca7d4ac9971eb76127316ab1e75bccbb23
Enable VBMI2 support [3/7]

gcc/
config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
_mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
_mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
_mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
_mm512_maskz_expandloadu_epi16): New intrinsics.
config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
_mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
_mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
_mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
_mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
_mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
_mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
_mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
_mm256_maskz_expandloadu_epi8): New intrinsics.
config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
config/i386/sse.md (VI248_VLBW): New iterator.
(expand<mode>_mask, expand<mode>_maskz): New patterns.

gcc/testsuite/
gcc.target/i386/avx512f-vpexpandb-1.c: New test.
gcc.target/i386/avx512f-vpexpandb-2.c: Ditto.
gcc.target/i386/avx512f-vpexpandw-1.c: Ditto.
gcc.target/i386/avx512f-vpexpandw-2.c: Ditto.
gcc.target/i386/avx512vl-vpexpandb-1.c: Ditto.
gcc.target/i386/avx512vl-vpexpandb-2.c: Ditto.
gcc.target/i386/avx512vl-vpexpandw-1.c: Ditto.
gcc.target/i386/avx512vl-vpexpandw-2.c: Ditto.

From-SVN: r255121
14 files changed:
gcc/ChangeLog
gcc/config/i386/avx512vbmi2intrin.h
gcc/config/i386/avx512vbmi2vlintrin.h
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpexpandb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpexpandw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpexpandb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpexpandw-2.c [new file with mode: 0644]