aboutsummaryrefslogtreecommitdiff
path: root/gcc/config.gcc
diff options
context:
space:
mode:
authorJulia Koval <julia.koval@intel.com>2017-12-20 07:20:44 +0100
committerKirill Yukhin <kyukhin@gcc.gnu.org>2017-12-20 06:20:44 +0000
commit6557be99afd301b8d7f2b142b12fb47ae6cb823d (patch)
treebbefc0e1b4b9d83460d7d28d34a63db215fbca28 /gcc/config.gcc
parent4b522b8f339f4e7844843d30f38ea9459d908e3c (diff)
downloadgcc-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.gcc6
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