diff options
author | Julia Koval <julia.koval@intel.com> | 2017-12-20 07:20:44 +0100 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2017-12-20 06:20:44 +0000 |
commit | 6557be99afd301b8d7f2b142b12fb47ae6cb823d (patch) | |
tree | bbefc0e1b4b9d83460d7d28d34a63db215fbca28 /gcc/config.gcc | |
parent | 4b522b8f339f4e7844843d30f38ea9459d908e3c (diff) | |
download | gcc-6557be99afd301b8d7f2b142b12fb47ae6cb823d.zip gcc-6557be99afd301b8d7f2b142b12fb47ae6cb823d.tar.gz gcc-6557be99afd301b8d7f2b142b12fb47ae6cb823d.tar.bz2 |
Enable VPCLMULQDQ support
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
(ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
* config.gcc: Include vpclmulqdqintrin.h.
* config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
* config/i386/driver-i386.c (host_detect_local_cpu): Handle -mvpclmulqdq.
* config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
__builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
* config/i386/i386-c.c (__VPCLMULQDQ__): New.
* config/i386/i386.c (isa2_opts): Add -mcx16.
(isa_opts): Add -mpclmulqdq, remove -mcx16.
(ix86_option_override_internal): Move mcx16 to flags2.
(ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
(ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
* config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
* config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
* config/i386/immintrin.h: Include vpclmulqdqintrin.h.
* config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
* config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
_mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
* doc/invoke.texi: Add -mvpclmulqdq.
gcc/testsuite/
* gcc.target/i386/avx-1.c: Handle new intrinsics.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/avx512-check.h: Handle bit_VPCLMULQDQ.
* gcc.target/i386/avx512f-vpclmulqdq-2.c: New test.
* gcc.target/i386/avx512vl-vpclmulqdq-2.c: Ditto.
* gcc.target/i386/vpclmulqdq.c: Ditto.
* gcc.target/i386/i386.exp (check_effective_target_vpclmulqdq): New.
From-SVN: r255850
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index e208d00..4c2b382 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -381,7 +381,8 @@ i[34567]86-*-*) clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h gfniintrin.h cet.h avx512vbmi2intrin.h avx512vbmi2vlintrin.h avx512vnniintrin.h - avx512vnnivlintrin.h gfniintrin.h vaesintrin.h" + avx512vnnivlintrin.h gfniintrin.h vaesintrin.h + vpclmulqdqintrin.h" ;; x86_64-*-*) cpu_type=i386 @@ -408,7 +409,8 @@ x86_64-*-*) clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h gfniintrin.h cet.h avx512vbmi2intrin.h avx512vbmi2vlintrin.h avx512vnniintrin.h - avx512vnnivlintrin.h gfniintrin.h vaesintrin.h" + avx512vnnivlintrin.h gfniintrin.h vaesintrin.h + vpclmulqdqintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h |