]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/i386/immintrin.h
Enable VBMI2 support [2/7]
authorJulia Koval <julia.koval@intel.com>
Thu, 23 Nov 2017 20:57:50 +0000 (21:57 +0100)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Thu, 23 Nov 2017 20:57:50 +0000 (20:57 +0000)
commit11cca3ca7d4ac9971eb76127316ab1e75bccbb23
tree89104eba88b3b1180b4fb6fe5a68df09b898cb51
parentcd761692cbbaa21d141866df06be53c7af5435b5
Enable VBMI2 support [2/7]

gcc/
config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
_mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
_mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
_mm512_mask_compressstoreu_epi16): New.
config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
_mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
_mm_mask_compress_epi16, _mm_maskz_compress_epi16,
_mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
_mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
_mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
_mm256_mask_compressstoreu_epi8): New.
config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
VOID_FTYPE_PV8HI_V8HI_UQI): New types.
config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
__builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
__builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
__builtin_ia32_compresshi128_mask,
__builtin_ia32_compressstoreuqi512_mask,
__builtin_ia32_compressstoreuhi512_mask,
__builtin_ia32_compressstoreuqi256_mask,
__builtin_ia32_compressstoreuqi128_mask,
__builtin_ia32_compressstoreuhi256_mask,
__builtin_ia32_compressstoreuhi128_mask): New builtins.
config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
array for flags2.
(ix86_expand_special_args_builtin): Handle new types.
(s4fma_expand): Handle new builtin array.
config/i386/immintrin.h: Include new headers.
config/i386/sse.md (VI12_AVX512VLBW): New iterator.
(compress<mode>_mask, compressstore<mode>_mask): New patterns.

gcc/testsuite/
gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit.
gcc.target/i386/avx512f-vpcompressb-1.c: New test.
gcc.target/i386/avx512f-vpcompressb-2.c: Ditto.
gcc.target/i386/avx512f-vpcompressw-1.c: Ditto.
gcc.target/i386/avx512f-vpcompressw-2.c: Ditto.
gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto.
gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto.
gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto.
gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto.
gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New.

From-SVN: r255119
17 files changed:
gcc/ChangeLog
gcc/config/i386/avx512vbmi2intrin.h [new file with mode: 0644]
gcc/config/i386/avx512vbmi2vlintrin.h [new file with mode: 0644]
gcc/config/i386/i386.c
gcc/config/i386/immintrin.h
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx512-check.h
gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-vpcompressw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpcompressb-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512vl-vpcompressw-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/i386.exp